当前位置:   article > 正文

Python+selenium总结(七)—多标签/多窗口之间的切换,多表单/多框架切换_python网页多标签移动标签页窗口

python网页多标签移动标签页窗口

1.多标签/多窗口之间的切换

场景:有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。

1)获取所有窗口的句柄

handles = driver.window_handlers         

调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。

2)通过窗口的句柄进入的窗口         

driver.switch_to.window(handles[n])         通过窗口句柄激活进入某一窗口

还可以使用循环和判断进行窗体切换

代码如下:

  1. # coding:utf-8
  2. from selenium import webdriver
  3. driver = webdriver.Chrome()
  4. driver.get("https://www.taobao.com/")
  5. # 淘宝首页handle
  6. handle = driver.current_window_handle
  7. driver.find_element_by_link_text("女装").click()
  8. # 获取所有handle
  9. handles = driver.window_handles
  10. # 切换到淘宝首页
  11. driver.switch_to.window(handles[0])
  12. # for i in handles:
  13. # if i != handle:
  14. # # 切换到淘宝首页
  15. # driver.switch_to.window(handle)
  16. driver.quit()

2.多表单/多框架切换     

在网页中,表单嵌套是很常见的情况,尤其是在登录的场景     

1)什么是多表单?         

实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面     

2)处理方法                  

直接使用id值切换进表单             

driver.switch_to.frame(value)      

定位到表单元素,再切换进入             

el = driver.find_element_by_xxx(value)             

driver.switch_to.frame(el)

4)多表单切换     

处理方法                  

driver.switch_to.default_content()         跳回最外层的页面。

driver.switch_to.parent_frame()         跳回上层的页面。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/488990
推荐阅读
相关标签
  

闽ICP备14008679号