Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium chromeDriver的打开速度比直接在chrome浏览器中打开网站要慢得多_Java_Selenium_Selenium Webdriver_Testng_Page Load Time - Fatal编程技术网

Java Selenium chromeDriver的打开速度比直接在chrome浏览器中打开网站要慢得多

Java Selenium chromeDriver的打开速度比直接在chrome浏览器中打开网站要慢得多,java,selenium,selenium-webdriver,testng,page-load-time,Java,Selenium,Selenium Webdriver,Testng,Page Load Time,在打开网站时,我遇到了一个关于SeleniumWebDriver速度的令人厌恶的问题 我正在测试的网站是一个内部网站,因此您无法访问。为了详细描述我的问题,我将把这个网站称为ABC 当我在Chrome浏览器中键入ABC的URL时,只需1秒钟即可打开此网站 在TestNG中,我的Selenium客户端如下所示: String ABC = "ABC'S URL"; String chromeDriverPath = "C:\\selenium\\chromedriver.exe" ; System.

在打开网站时,我遇到了一个关于SeleniumWebDriver速度的令人厌恶的问题

我正在测试的网站是一个内部网站,因此您无法访问。为了详细描述我的问题,我将把这个网站称为
ABC

当我在Chrome浏览器中键入ABC的URL时,只需1秒钟即可打开此网站

在TestNG中,我的Selenium客户端如下所示:

String ABC = "ABC'S URL";
String chromeDriverPath = "C:\\selenium\\chromedriver.exe" ;
System.out.println("start selenium");
File file = new File(chromeDriverPath);
System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
webDriver driver = new ChromeDriver(options);
driver.get(ABC);
然后,Chrome将由自动化测试软件控制。在footprint上,会有一个注释,上面写着等待staticxx.fackbook.com,或者等待www.facebook.com

1分钟后,
ABC
网站已成功加载。我检查了F12工具,在控制台上显示:staticxx.facebook.com/connect/xd_arbiter/r/0F7S7QWJ0Ac.js?version=42#channel=f38f3479af658&origin=http% 加载资源失败:服务器响应状态为503(服务不可用)

是否有任何Selenium API可以避免加载某些web资源? 或者,我可以在浏览器上进行一些配置以停止加载某些web资源吗


提前谢谢大家

以下是您问题的答案:

为了避免加载某些网站,您可以通过调整
DesiredCapabilities
类中的
pageLoadStrategy
来利用Chrome浏览器的功能,并将其设置为
none
,如下所示:

String ABC = "ABC'S URL";
String chromeDriverPath = "C:\\selenium\\chromedriver.exe" ;
System.out.println("start selenium");
File file = new File(chromeDriverPath);
System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
capabilities.setCapability("pageLoadStrategy", "none");
webDriver driver = new ChromeDriver(capabilities);
driver.get(ABC);

如果这能回答您的问题,请告诉我。

我想我有一个解决方案给您,但我需要先了解您的确切要求。你所说的
避免加载某些网站的确切含义是什么?谢谢你的例子。我访问了ABC网站,在ABC网站上,有一个链接指向facebook.com。在我的测试中,我不需要测试facebook.com。但我必须等待ABC网站上的所有请求,然后ABC网站呈现。这花费了我太多的时间。事实上,当我打电话给driver.get(“ABC网站”);渲染元素只需几秒钟。够了。我不想等待太长时间,等待毫无用处的staticxx.facebook.com回复。请查看我的答案。感谢,直到需要等待ABC网站完全完成。太伤心了。我发现为什么这对他有效…不是我。。。谢谢大家same@RogersShu我可以帮你一些其他的策略,但在这种情况下,你必须分享实际的URL和你的工作。ThanksHi Dev URL位于DMZ中。我终于解决了这个问题。我使用了集成在selenium中的代理,并像facebook一样阻止url。它起作用了。也感谢你的建议。我认为你的解决方案对我不起作用,因为像facebook这样的元素调用url是在一个web前端结构中,pageLoadStrategy不能忽略。我接受了你的回答,你的解决方案可以解决这类问题。我希望它能在这种情况下帮助其他人