从selenium webdriver停止浏览器加载

时间:2013-04-05 12:35:47

标签: google-chrome selenium webdriver

我的selenium webdriver转到页面并等待该页面完成加载。如果30秒超时则脚本失败。

有没有让webdriver在30秒后停止加载页面(比如按下浏览器上的'x')?这将阻止我的司机超时。

我正在使用Chromedriver。

3 个答案:

答案 0 :(得分:4)

这是我遇到这个问题的方式。我将使用这种方式,直到chrome支持pageload

我在chrome中安装了一个名为Stop load的扩展,我设置了5秒的停止加载。

然后我使用默认设置 -

启动了我的驱动程序
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir="+System.getProperty("user.home")+"\\AppData\\Local\\Google\\Chrome\\User Data"));
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
driver = new ChromeDriver(capabilities); 

如果Chrome中的页面未在5秒内加载,则您的扩展程序会在5秒钟内将其删除。

在某种程度上,如果在扩展名

中设置正确的停止加载时间,它就像一个implicitwait

答案 1 :(得分:2)

您可以使用 JavaScript 函数window.stop()和方法Selenium::WebDriver::Driver#execute_script停止 Ruby 中的页面加载:

driver.execute_script("window.stop()")

答案 2 :(得分:1)

尝试使用:

   driver.manage().timeouts().pageLoadTimeout();

文件:
Page Load Timeout

此外,作为提示,您无法使用Selenium WebDriver访问浏览器的本机控件。如果您想这样做,请使用Sikuli等工具(如果您使用的是Linux)或AutoIt用于Windows。