Pan*_*Boy 10 selenium webdriver selenium-chromedriver selenium-webdriver pageloadstrategy
我正在使用Chrome浏览器测试WebApp.
有时页面会在很长时间后加载.我需要停止下载或限制下载时间.
在FireFox我知道PAGE_LOAD_STRATEGY = "eager".
铬有类似之处吗?
PS:driver.manage().timeouts().pageLoadTimeout()有效,但之后对Webdriver的任何处理都会引发TimeOutException.我需要在停止启动后获取页面的当前URL.
Deb*_*anB 16
从Webdriver规范:
对于导致加载新文档的命令,命令返回的点由会话的页面加载策略确定.
当eager花费太多时间而你需要停止下载额外的子资源(图像,css,js等)时,你可以Page Loading通过改变 它pageLoadStrategy.
在撰写本文时,webdriver支持以下值:
pageLoadStrategy
这种状态导致Selenium等待整页加载(html内容和下载和解析的子资源).
normal
此状态导致Selenium等待DOMContentLoaded事件(仅下载和解析html内容).
eager
此策略导致Selenium在完全接收初始页面内容后立即返回(下载html内容).
默认情况下,在none加载页面时,它会跟随.Selenium normal
以下是pageLoadStrategy通过DesiredCapabilities类和ChromeOptions类实例配置的代码块,如下所示:
使用DesiredCapabilities类:
package demo; //replace by your own package name
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
public class A_Chrome_DCap_Options {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
DesiredCapabilities dcap = new DesiredCapabilities();
dcap.setCapability("pageLoadStrategy", "normal");
ChromeOptions opt = new ChromeOptions();
opt.merge(dcap);
WebDriver driver = new ChromeDriver(opt);
driver.get("https://www.google.com/");
System.out.println(driver.getTitle());
driver.quit();
}
}
Run Code Online (Sandbox Code Playgroud)使用ChromeOptions类:
package demo; //replace by your own package name
import org.openqa.selenium.PageLoadStrategy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class A_Chrome_Options_test {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
ChromeOptions opt = new ChromeOptions();
opt.setPageLoadStrategy(PageLoadStrategy.NORMAL);
WebDriver driver = new ChromeDriver(opt);
driver.get("https://www.google.com/");
System.out.println(driver.getTitle());
driver.quit();
}
}
Run Code Online (Sandbox Code Playgroud)注:
pageLoadStrategy()值pageLoadStrategy,normal并且eager是按要求webdriver的W3C编辑草稿,但none作为价值pageLoadStrategy仍然是一个WIP(工作正在进行中)内ChromeDriver实施.您可以在Python中的Chromedriver Selenium的"Eager"页面加载策略解决方法中找到详细的讨论
参考文献:
| 归档时间: |
|
| 查看次数: |
21406 次 |
| 最近记录: |