首页 > 技术文章 > selenium多标签,多表单切换

djl-0628 2021-04-30 15:12 原文

Selenium多标签之间的切换

多标签之间的切换

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

  1. 获取所有窗口的句柄

    handles = driver.window_handlers()
    
    

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

  2. 通过窗口的句柄进入对应窗口

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

案例:58同城租房信息

多表单切换

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

  1. 什么是多表单?

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

    frame/iframe表单嵌套页面的应用.WebDrivr只能在一个页面上对元素识别与定位,对于在frame/iframe表单内嵌页面上的元素无法直接定位.这时需要使用 switch_to.fram

  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)
    

案列:126网站登录

推荐阅读