浏览器多窗口处理:

有时候我们在测试一个web应用的时候会出现多个浏览器窗口的情况,

webdriver提供了相应的解决方案,如下:

首先要获得每一个窗口的唯一标识符号(句柄),通过获得的句柄来区分不同的

窗口,从而对不同窗口上的元素进行操作。

 

举例:

nowhandle=driver.current_window_handle #获取当前窗口句柄 主窗口就是第一个窗口的句柄

driver.find_element_by_css_selector('a.pass-reglink').click()

time.sleep(2)

allhands = driver.window_handles #获取所有窗口的句柄

for hands in allhands:

if hands != nowhandle:

driver.switch_to_window(hands) #通过句柄跳转窗口

driver.find_element_by_name("account").send_keys("123456")

driver.close() #关闭新打开的窗口

driver.switch_to_window(nowhandle) #回到之前的窗口

driver.find_element_by_css_selector("a.close-btn").click()

 

注意:

  1. 一个窗口就是一个句柄,是一串随记的字符串值。每次打开新窗口,句柄值会变化。

十、	selenium10 浏览器多窗口处理

 

求第二个窗口的句柄:Remove()方法+for

十、	selenium10 浏览器多窗口处理

 

优化:通过title或者url跳转

通过网页标题跳转

十、	selenium10 浏览器多窗口处理

 

十、	selenium10 浏览器多窗口处理

通过URL跳转:

十、	selenium10 浏览器多窗口处理

 

相关文章: