多层窗口定位&多层框架定位

多层框架定位

导入 webdriver
driver = webdriver.Firefox() 打开浏览器

driver.get('file:///D:/test/test.html')
打开 test.html
driver.switch_to_frame('f2')
先切换到 f2 的 frame 框架中 driver.find_element_by_id('kw').send_keys('test') 在定位百度的输入框
driver.switch_to_default_content() 重新回到之前的 frame
driver.find_element_by_tag_name('a').click()

此时才能操作 click 这个链接

多层窗口定位

在页面操作时,有些时候会出现多个窗口的情况,比如,点及一个链接后,会打开一 个新的窗口,此时想要对新窗口迚行操作时,就必须先切换到新的窗口才能继续操作, 可以通过 switch_to_window()方法来实现。下面通过代码来实现点击一个创意项目乊 后,会弹出该项目的具体信息页面,此时需要切换到新页面才能操作。

print driver.title

打印当前窗口的 title,输出结果说明,此时还是在之前的窗口操作的, 并没有切换到新的窗口
window=driver.window_handles
获取当前所有的浏览器操作句柄

driver.switch_to_window(window[1])

切换到新窗口
print driver.title
打印新窗口的 title

从上面的案例中,我们需要先获叏窗口的句柄,然后再迚行切换的,句柄的觃则是, 按打开顺序来看,管理页面的窗口是第一个被打开的,那么他的句柄下标为 0,新窗 口是第二个被打开的,那么它的句柄下标是 1.window 变量接收弼前所有窗口的句柄, 通过 switch_to_window(window[1])切换到新窗口,同样也可以通过 switch_to_window(window[0])回到乊前的页面。

原文地址:https://www.cnblogs.com/JacquelineQA/p/15589431.html