【问题标题】:Python switching windows with SeleniumPython 使用 Selenium 切换窗口
【发布时间】:2018-01-03 08:18:33
【问题描述】:

你能帮我提个建议吗?我正在做一些 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)

谢谢。

【问题讨论】:

    标签: python selenium


    【解决方案1】:

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

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

    window_before = driver.window_handles[0]
    

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

    window_after = driver.window_handles[1]
    

    我假设第三个窗口是

    driver.window_nandles[2]
    

    还可以看看here,你可以循环槽窗口,只需在第三个窗口中断并做任何你想做的事情:

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

    希望对你有帮助。

    【讨论】:

    • 谢谢斯拉夫,但我现在有另一个问题,当我运行代码时,前两个窗口正在打开,第三个窗口是我收到的错误:window_now = second_login.window_handles[2] IndexError: 列表索引超出范围
    • 您好,如果您再次调用 second_login.window_handles[1] 会发生什么
    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 2019-12-02
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多