我正在使用selenium 3.4.3和python 3.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,我很高兴听到它!