加载前如何与页面互动?

时间:2018-08-03 06:26:23

标签: python selenium

我在使用硒和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等待页面完全加载,因此我无法关闭此弹出窗口并与页面进行交互。

谢谢大家,对我英语不好的人感到抱歉。

2 个答案:

答案 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);