我在使用硒和python时遇到问题。我正在尝试与这样的页面进行交互:
driver_window_manager.get(url)
iframe = driver_window_manager.find_elements_by_tag_name('iframe')[0]
driver_window_manager.switch_to_frame(iframe)
但是在网页中,会出现一个弹出窗口,等待用户单击并最终加载页面。
但是硒中的driver.get
等待页面完全加载,因此我无法关闭此弹出窗口并与页面进行交互。
谢谢大家,对我英语不好的人感到抱歉。
答案 0 :(得分:0)
driver.get
等待页面加载,然后仅继续进行,如果您不想等待,则需要使用JavaScript来使用execute_script
加载URL。它会立即返回,以便您可以执行所需的任何操作-
driver.execute_script("window.open(your_url);")
现在,例如,如果您想接受弹出窗口,则可以-
WebDriverWait(driver, 10).until(EC.alert_is_present())
alert = driver.switch_to.alert
alert.accept()
注意,您需要添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
答案 1 :(得分:0)
您描述的阻止行为是由于Selenium中的默认page load strategy造成的。您可以通过所选浏览器的requiredCapabilities或options类来更改此设置。
InternetExplorerOptions ieOptions = ieOptions();
ieOptions.setPageLoadStrategy(PageLoadStrategy.NONE);
driver = new InternetExplorerDriver(ieOptions);