编写自动化测试脚本的时候,肯定会遇到打开新窗口后进行操作的场景,当一个新窗口被打开后,原有的driver实例还是处在第一个窗口的状态,无法定位新窗口的页面元素,此时需要切换driver到新窗口,才能进行操作。
切换有两种方法:
方法一:
for handle in browser.window_handles:
browser.switch_to_window(handle)
#此方法始终切换到最后一个web窗口
方法二:
driver.switch_to_window(browser.window_handles[1])
#通过参数window_dandles[1]可以精准定位选择切换到第二个新窗口
两个方法在python 3.6+selenium+Firefox环境下都亲测有效
def open_news_page(webinfo_dict):
print(str(webinfo_dict['news']))
driver.find_element_by_link_text(webinfo_dict['news']).click()
time.sleep(15)
#for handle in driver.window_handles: # 方法一,切换到目前窗口的最后一个
# driver.switch_to_window(handle)
driver.switch_to_window(driver.window_handles[1]) #方法二,切换到第二个网页窗口
driver.find_element_by_xpath('/html/body/div/div[2]/div[1]/div/div/div[2]/ul/li[3]/a').click()
time.sleep(5)
check_news(driver,webinfo_dict,log)
log.log_close()
参考:https://blog.csdn.net/mrlevo520/article/details/51926145/