8.元素的操作
对元素的相关操作,一般要选获取到元素,再调用相关方法
element = driver.find_element_by_xxx(value)
1)点击和输入
点击操作-------->element.click()
清空/输入操作:
element.click()------------->清空输入框
element.send_keys(data)------->输入数据
提交操作:element.submit()
9.多标签之间的切换
1.获取所有窗口的句柄
handles=driver.window_handlers
调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。
2.通过窗口的句柄进入的窗口
driver.switch_to_window(handles[n])
driver.switch_to_window(handles[n])
通过窗口句柄激活进入某一窗口
10.多表单切换
在网页中,表单嵌套是很常见的情况,尤其是在登录场景。
10.1什么是多表单
实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面。
10.2处理方法
直接使用id值切换进表单
driver.switch_to_frame(value)/driver.switch_to_frame(value)
定位到表单元素,再切换进入
el = driver.find_element_by_xxx(value)
driver.switch_to_frame(el)/driver.switch_to_frame(el)
11.弹出框操作
1.进入到弹出框中
driver.switc_to.alert
2.接受警告
accept()
3.解散警告
dismiss()
发送文本到警告框
send_keys(data)
用法:driver.switch_to.alert.accept()
14.浏览器等待
1.为什么要进行等待
网速慢、网站内容过多、如果不进行等待而直接定位元素,可能会抛出异常
2.selenium中等待的分类:
1.显示等待
显示等待是根据条件进行等待,等待条件出现
WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。
2.隐式等待
隐式等待是根据是件进行等待,等待特定时间
n的单位为秒,n为最大值,在这个最大值内只要该界面上的全部元素都加载完成定就结束没有加载出元素就抛出 NosuchException.