selenium中等待的分类:
1)强制等待
导入定时等待库 from time import sleep 或者 import time
2)显式等待
需要导入的包
from selenium.webdriver.support.wait import WebDriverWait #导入显性等待的包
from selenium.webdriver.support import expected_conditions as EC #判断所需要的元素是否已经被加载出来
from selenium.webdriver.common.by import By #定位
3)隐式等待
driver.implicitly_wait(30) #等待30s
注:隐式等待的作用域是全局,所以一般设置在整局代码的头几行。
小总结:
强制等待:傻瓜式等待,不智能
隐式等待:全局通用,只需设置一次,很智能(等到了就走,不会浪费时间)
显式等待:等待元素处于特定条件的时候使用,很智能(等到了就走,不会浪费时间)
多表单切换
处理方法
1)直接使用id值切换进表单 driver.switch_to.frame(value)/driver.switch_to_frame(value)
2)定位到表单元素,再切换进入
el = driver.find_element_by_xxx(value)
driver.switch_to.frame(el) /driver.switch_to_frame(el)
案例:
弹出框操作
1) 进入到弹出框中
driver.switch_to.alert
2) 接收警告
accept()
3) 解散警告
dismiss()
4) 发送文本到警告框
send_keys(data)
案例:
滚动条案例:
鼠标和键盘案例:
下拉框案例:
优化代码:
生成测试报告
测试报告展示