web自动化测试元素操作及鼠标键盘操作

本文详细介绍了Selenium中元素操作的方法,包括send_keys(), click(), clear()等,以及浏览器控制API,如最大窗口、前进、后退等。此外,还讲解了元素信息获取、鼠标和键盘操作,以及元素等待的重要性,包括隐式等待和显示等待的使用技巧。" 123500569,12449362,Python 3.6+:有序字典与链式比较的秘密,"['Python编程', '数据结构', '逻辑运算', '编程技巧']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、元素操作

2.1 方法

1). send_keys() # 输入方法

2). click() # 点击方法

3). clear() # 清空

2.2 提示:

1. 在输入方法之前一定要清空操作。

二、浏览器常用操作API

2.1 方法

1). driver.maximize_window() # 最大化浏览器

2). driver.set_window_size(w, h) # 设置浏览器大小 单位像素

3). driver.set_window_position(x, y) # 设置浏览器位置

4). driver.back() # 后退操作

5). driver.forward() # 前进操作

6). driver.refresh() # 刷新操作

7). driver.close() # 关闭当前主窗口(主窗口:默认启动哪个界面,就是主窗口)

8). driver.quit() # 关闭由driver对象启动的所有窗口

9). driver.title # 获取当前页面title信息

10). drive.current_url # 获取当前页面url信息

2.2 提示:

1. driver.title 和 driver.current_url 没有括号,应用场景:一般为判断上步操作是否执行成功。

2. driver.maximize_window() # 一般为我的前置代码,在获取driver后,直接编写最大化浏览器

3. driver.refresh() 应用场景,在后面的cookie章节会使用到。

4. driver.close()与driver.quit()区别:

close():关闭当前主窗口

quit():关闭由driver对象启动的所有窗口

提示:如果当前只有1个窗口,close与quit没有任何区别。

三、元素信息操作API

3.1 方法:

1). text 获取元素文本 如:driver.text

2). size 获取元素大小 如:driver.size

3). get_attribute 获取元素属性值 如:driver.get_attribute("id")

4). is_displayed 判断元素是否可见 如:element.is_displayed()

5). is_enabled 判断元素是否可用 如: element.is_enabled()

6). is_selected 判断元素是否被选中 如:element.is_selected()

3.2 提示:

1. text和size调用时 无括号

2. get_attribute一般应用场景:判断一组元素是否为想要的元素或者判断元素属性值是否正确

3. is_displayed、is_enabled、is_selected,在特殊应用场景中使用。

四、鼠标操作

4.1 为什么使用鼠标操作?

为了满足丰富的html鼠标效果,必须使用对应的方法。

4.2 鼠标事件对应的方法在哪个类中

ActionChains类--->导包 from selenium.webdriver.common.action_chains import ActionChains

4.3 鼠标事件常用的操作方法

1. context_click() # 右击

应用:context_click(element).perform()

2. double_click() # 双击

应用:double_click(element).perform()

3. drag_and_drop() # 拖拽

应用:drag_and_drop(source, target).perform

4. move_to_element() #悬停

应用: move_to_element(element).perform()

5. perform() # 执行以上事件方法

4.4 提示:

1. selenium框架中虽然提供了,右击鼠标方法,但是没有提供选择右击菜单方法,可以通过发送快捷键的方式解决(经测试,谷歌浏览器不支持)。

五、键盘操作

4.1 键盘对应的方法在Keys类中

包:from selenium.webdriver.common.keys import Keys

4.2 常用的快捷键:

CONTROL:Ctrl键

其他,请参考Keys底层定义的常亮

4.3 应用

组合键:element.send_keys(Keys.XXX, 'a')

单键:element.send_keys(Keys.XXX)

六、元素等待

6.1 为什么要设置元素等待

由于电脑配置或网络原因,在查找元素时,元素代码未在第一时间内被加载出来,而抛出未找到元素异常。

6.2 什么是元素等待

元素在第一次未找到时,元素等待设置的时长被激活,如果在设置的有效时长内找到元素,继续执行代码,如果超出设置的时长未找打元素,抛出未找到元素异常。

6.3 元素等待分类

1. 隐式等待

2. 显示等待

6.4 隐式等待

方法:driver.implicitly_wait(30) # 一般情况下设置30秒

特色:

1. 针对所有元素生效。

2. 一般情况下为前置必写代码(1.获取浏览器驱动对象;2. 最大化浏览器;3. 设置隐式等待)

6.5 显示等待

方法:WebDriverWait(driver,timeout=10, poll_frequency=0.5).until(lambda x:x.find_element_by_id("#user")).send_keys("admin")

参数:

timeout: 超时时间

poll_frequency:访问频率,默认0.5秒找一次元素

x: x为driver,它是WebDriverWait类将传入的driver赋值给类self._driver,until方法调用了self._driver;

提示:

1. WebDriverWait(driver,timeout=10, poll_frequency=0.5).until(lambda x:x.find_element_by_id("#user"))返回的一个元素。

6.6 显示等待与隐式等待区别:

1. 显示等待:针对单个元素生效

2. 隐式等待:针对全局元素生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值