我的 selenium webdriver 进入一个页面并等待该页面完成加载。如果超过 30 秒,则会超时并且脚本失败。
是否有办法让网络驱动程序在 30 秒后停止页面加载(例如按浏览器上的“x”)?这将防止我的驱动程序超时。
我正在使用 Chromedriver。
这就是我遇到这个问题的方式。我会一直使用这种方式直到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 秒内杀死它来处理它。
在某种程度上,如果您在扩展中设置了正确的停止加载时间,它的工作原理就像隐式等待
您可以使用 JavaScript 函数 window.stop()
和方法
Selenium::WebDriver::Driver#execute_script
停止页面加载 Ruby:
driver.execute_script("window.stop()")