使用Selenium进行Python切换窗口

时间:2017-07-27 14:20:52

标签: python selenium

你能帮我一个建议吗?我正在进行一些QA测试并正在测试一个站点。在此过程中,Chrome中的一个窗口打开,我正在尝试在Chrome中切换这些窗口。我没有成功切换到第三个窗口。你能帮帮忙吗?我正在使用Pycharm和Selenium框架。

以下是我要求您提供协助的守则部分:

second_login= webdriver.Ie()
second_login.maximize_window()
second_login.get('http://google.com')
print(second_login.title)
second_login.find_element_by_id('id1').click()
tab_now = second_login.window_handles[1]
second_login.switch_to.window(tab_now)
print(second_login.title)
log = second_login.find_element_by_id('id2')
log.send_keys('admin1')
pas=second_login.find_element_by_id('id3')
pas.send_keys('pas1')
logbutton=second_login.find_element_by_class_name('LoginButton')
logbutton.click()
second_login.implicitly_wait(3)
tab_after = second_login.window_handles[-1]
second_login.switch_to.window(tab_after)
second_login.find_element_by_id('id4').click()
print(second_login.title)

谢谢。

1 个答案:

答案 0 :(得分:2)

here所述,您可以使用window_handles和switch_to_window方法来完成。

在点击链接第一个窗口句柄之前

window_before = driver.window_handles[0]

新打开的窗口的第二个窗口句柄

window_after = driver.window_handles[1]

我假设第三个窗口是

driver.window_nandles[2]

另外看看here,你可以通过窗口循环,只需在第3个窗口中打破并做任何你想做的事情:

for handle in driver.window_handles:
    driver.switch_to_window(handle)

希望它有所帮助。