【问题标题】:Switching into new window using Selenium after button click单击按钮后使用 Selenium 切换到新窗口
【发布时间】:2018-04-15 10:13:18
【问题描述】:

我正在做一个非常简单的网页项目,但有点卡住了。我正在使用一个网站,在填写表格并单击按钮后,我会在新窗口中打开 XML 文档时为我提供所需的数据。但是,我不知道如何访问它,因为我没有给出窗口名称

browser = Browser('firefox')
browser.visit('http://desiredurl/')
form = browser.find_by_id('input')
button = browser.find_by_id('send')
form.fill(string)
button.click()

单击一个按钮会触发一个 ajax 请求(doAjaxRequest("POST", url, xml);)并打开一个带有 XML 文档的新窗口。从打开的 XML 访问数据的最佳方式是什么?

【问题讨论】:

    标签: python xml selenium


    【解决方案1】:

    您的问题的解决方案是将Explicitwaitexpected_conditions 诱导为number_of_windows_to_be,然后切换到新窗口如下:

    parent = driver.current_window_handle
    button = browser.find_by_id('send')
    form.fill(string)
    button.click()
    WebDriverWait(driver, 10).until(
        EC.number_of_windows_to_be(2)
        )   
    child = driver.window_handles[1]      
    driver.switch_to_window(child) 
    print ("Child Window ID is : %s" %child)
    print("Child Window Title is : %s " %(driver.title)) 
    

    您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    

    【讨论】:

    • 给初学者一点帮助:from selenium.webdriver.support import expected_conditions as EC
    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2021-07-31
    • 2015-03-30
    • 2015-09-09
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多