(Selenium API高级
多标签之间的切换 场景:有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。 1)获取所有窗口的句柄 handles = driver. window_handles 调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。 2)通过窗口的句柄进入的窗口 driver.switch_to_window(handles[n]) driver.switch_to.window(handles[n]) 通过窗口句柄激活进入某一窗口
多表单切换 在网页中,表单嵌套是很常见的情况,尤其是在登录的场景 1)什么是多表单? 实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面 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)
弹出框操作 1) 进入到弹出框中 driver.switch_to.alert 2) 接收警告 accept() 3) 解散警告 dismiss() 4) 发送文本到警告框 send_keys(data)
滚动条操作
js = ‘window.scrollTo(0,b)‘ #b表示距离定位的距离
driver.execute_script(js) #执行js脚本
滚动条回到顶部
js = "window.scrollTo(0,0)"或者
js=“var q=document.documentElement.scrollTop=0“
滚动条回到底部
js = “window.scrollTo(0,document.b