三、多知识点综合实战之模拟登录
鼠标事件之菜单栏hover弹出
引入 ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains move_to_element(to_element) 鼠标移动到某个元素 对定位到的元素执行鼠标移动到上面的操作 ActionChains(driver).move_to_element(ele1).perform()
四、自动化测试实战之网页等待
为什么需要等待时间–》等系统稳定:网页需要加载对应的资源文件,页面渲染,窗口处理等等
自动化测试常用的等待时间
强制等待 : (自己调试代码看效果)
from time import sleep
sleep(5) # 强制等待5秒再执行下一步,缺点是不管资源是不是完成,都必须等待
隐性等待: driver.implicitly_wait(10) # 隐性等待,最长等10秒 设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下 一步,弊端就是程序会一直等待整个页面加载完成,到浏览器标签栏那个加载圈不再转 注意:对driver起作用,所以只要设置一次即可,没有必要到处设置 显性等待: WebDriverWait 需要配合 until和until_not,程序每隔N秒检查一次,如果成功,则执行下一步,否 则继续等待,直到超过设置的最长时间 from selenium.webdriver.support.wait import WebDriverWait 语法:WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) timeout最大时间,0.5s检查一次 ,ignored_exceptions=None异常忽略情况,可不填 from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC 结论: 隐性等待和显性等待可以同时用,等待的最长时间取两者之中的较大者
五、自动化测试之常见的弹窗处理
使用selenium处理页面弹窗,alert和comfirm
弹窗常用方法(需要先切换窗口 switch_to_alert() )
accept() 表示接受
dismiss() 表示取消
六、验证码处理
简介:自动化测试之常见验证码解决方案
破解验证码 OCR识别: tesseract-ocr AI机器学习: 绕过 让开发人员临时关闭验证码 安全性需要保密,一般在开发测试环境使用) 提供一个万能的验证码(安全性需要保密,一般在开发测试环境使用) 使用cookie(登录主要是为了拿cookie,获取登录凭证)
七、cookie处理
WebDriver相关的cookies操作
get_cookies(self): 获取当前会话中当前域名所有cookies
get_cookie(self, name): 获取当前会话中当前域名指定name对应的cookie值
delete_cookie(self, name): 删除指定cookie
delete_all_cookies(self): 删除所有cookie
add_cookie(self, cookie_dict): 添加cookie
添加cookie时需要逐条添加,cookie_dict示例:
driver.add_cookie({'name' : 'foo', 'value' : 'bar'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True})"



