停止浏览器从 selenium webdriver 加载

问题描述 投票:0回答:3

我的 selenium webdriver 进入一个页面并等待该页面完成加载。如果超过 30 秒,则会超时并且脚本失败。

是否有办法让网络驱动程序在 30 秒后停止页面加载(例如按浏览器上的“x”)?这将防止我的驱动程序超时。

我正在使用 Chromedriver。

google-chrome selenium webdriver
3个回答
4
投票

这就是我遇到这个问题的方式。我会一直使用这种方式直到chrome支持

pageload

我在 Chrome 中安装了一个名为“停止加载”的扩展,并设置了 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 秒内杀死它来处理它。

在某种程度上,如果您在扩展中设置了正确的停止加载时间,它的工作原理就像隐式等待


2
投票

您可以使用 JavaScript 函数 window.stop() 和方法

Selenium::WebDriver::Driver#execute_script 停止页面加载 
Ruby
:

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

1
投票

尝试使用这个:

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

文档:
页面加载超时

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

© www.soinside.com 2019 - 2024. All rights reserved.