Selenium Webdriver Headless Mode显示空白页

问题描述

过去2个小时中,我一直在寻找无头模式搞砸了我的程序的原因。 当我禁用无头模式时,一切正常,我可以运行该程序而不会出现问题,但是,启用(--headless)后,由于页面只是空白,因此我的网络驱动程序无法找到任何元素。

我真的很感谢您的帮助,我想网站正在检测无头模式,因此显示空白页?有什么办法可以绕过它?

以下是我通过浏览器的参数列表:

options.AddArguments("--headless");
options.AddArguments("disable-blink-features=AutomationControlled");
options.AddArguments("log-level=3");
options.AddArguments("--windows-Size=1920,1080");
options.AddArguments("--disable-gpu");
options.AddArguments("--disable-extensions");
options.AddArguments("--start-maximized");
options.AddArguments("--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/73.0.3683.86 Safari/537.36");

你们遇到过吗?我发现一些线程已经解决了这个问题,但是我找不到任何解决方案。

谢谢:)

解决方法

我也遇到了您的问题,并通过以下解决方案解决了该问题

  1. 首先获取浏览器的userAgent:

String userAgent = (String) ((JavascriptExecutor) driver).executeScript("return navigator.userAgent;");

System.setProperty("useragent",userAgent);

  1. 如下所示将其添加到浏览器选项

options.addArguments("--user-agent="+System.getProperty("useragent"));