主要记录webdriver的鼠标、键盘事件
WebDriver操作鼠标方法
在WebDriver中将操作鼠标的方法封装在ActionChains类中
1. context_click() 右击 --> 此方法模拟鼠标右键点击效果
2. double_click() 双击 --> 此方法模拟双标双击效果
3. drag_and_drop() 拖动 --> 此方法模拟双标拖动效果
4. move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
5. perform() 执行 --> 此方法用来执行以上所有鼠标方法
为了更好的学习其他方法,我们先学习perform()执行方法,因为所有的方法都需要执行才能生效
代码实现关键点分析
1. 导包:from selenium.webdriver.common.action_chains import ActionChains
2. 实例化ActionChains对象:Action=ActionChains(driver)
3. 调用右键方法:element=Action.context_click(username)
4. 执行:element.perform()
WebDriver操作键盘方法
在WebDriver中将操作鼠标的方法封装在Keys类中
导包:from selenium.webdriver.common.keys import Keys
常用的键盘操作
1. send_keys(Keys.BACK_SPACE)删除键(BackSpace)
2. send_keys(Keys.SPACE)空格键(Space)
3. send_keys(Keys.TAB)制表键(Tab)
4. send_keys(Keys.ESCAPE)回退键(Esc)
5. send_keys(Keys.ENTER)回车键(Enter)
6. send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
7. send_keys(Keys.CONTROL,'c')复制(Ctrl+C)
元素等待
为什么要设置元素等待?
1. 由于网络速度原因
2. 电脑配置原因
3. 服务器处理请求原因
元素等待的类型:1.显式等待 2.隐式等待
显式等待---》作用域:单个元素有效
WebDriverWait(driver,timeout,poll_frequency=0.5).until(method)
#driver :浏览器对象
#timeout:超时的时长,单位秒
#poll_frequency=0.5 :检测间隔时间,默认0.5秒
#until(method):直到...时
隐式等待---》作用域:全局元素有效
driver.implicity_wait(timeout)
#timeout:为等待的最大时长,单位秒
#
如果定位某一元素定位失败,那么就会触发隐式等待有效时长,如果在指定时长内加载完毕,则继续执行,否则
抛出NoSuchElementException异常,如果元素在第一次就定位到则不会触发隐式等待时长;