Selenium:cli后窗口不打开

2024-09-23 22:27:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用selenium 3.4.3和Python3.6.2,当我想打开一个新窗口时,我遇到了一个问题。 首先是代码中失败的部分:

def wait_and_find_by_id(element_id):
    WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, element_id))
    )
    return driver.find_element_by_id(element_id)

VA = wait_and_find_by_id('VA_id')
driver.execute_script("window.showModalDialog = window.open;")
VA.click()

# Wait for the new window to open
time.sleep(2)
driver.switch_to_window(driver.window_handles[2])

tarifaire = driver.find_element_by_xpath("//*[@id='tarif_id']/span/span")
driver.execute_script("window.showModalDialog = window.open;")
tarifaire.click()

我对第一个窗口的打开没有问题(VA.click()),但是当我试图打开第二个窗口(tarifaire.click())时,窗口似乎在刷新,其他什么都没有发生。在

我试图在没有driver.execute_script的第二个实例的情况下运行脚本,窗口打开了,但作为一个弹出窗口,只要我不关闭弹出窗口,我的程序就会被卡住。在

如果你需要帮助,我可以给你更多的信息。在

更新:原来它与ChromeDriver一起工作很好,我甚至不必使用driver.execute_script。不过,如果有人知道为什么上面的脚本在Firefox的Geckodriver上不起作用,我很乐意听到!在


Tags: andidexecutebydriverscriptelementopen