Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 无头Chrome-获取空白页源_Java_Selenium_Selenium Chromedriver - Fatal编程技术网

Java 无头Chrome-获取空白页源

Java 无头Chrome-获取空白页源,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,我正在尝试使用SeleniumWeb驱动程序在无头模式下加载带有Chrome浏览器的网站。我面临一些特定网站的问题。页面正在加载,在前2-3秒内显示一个带有“请启用javascript…”的页面,3秒钟后,页面源变为空白 我长期使用Selenium,尤其是Chrome,我对这个平台很熟悉。在本例中,我在Mac OS上使用了Chrome版本73.0.3683.86,ChromeDriver 2.46.628411(根据兼容)。selenium java版本是最新的-3.141.59 我怀疑head

我正在尝试使用SeleniumWeb驱动程序在无头模式下加载带有Chrome浏览器的网站。我面临一些特定网站的问题。页面正在加载,在前2-3秒内显示一个带有“请启用javascript…”的页面,3秒钟后,页面源变为空白

我长期使用Selenium,尤其是Chrome,我对这个平台很熟悉。在本例中,我在Mac OS上使用了Chrome版本73.0.3683.86,ChromeDriver 2.46.628411(根据兼容)。selenium java版本是最新的-3.141.59

我怀疑headless Chrome无法处理特定的内容类型,如“svg”和任何其他与GUI相关的HTTP响应

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--headless");
    WebDriver driver = new ChromeDriver(chromeOptions);

    driver.get("https://identity.tescobank.com/login");

    Thread.sleep(3000);

    System.out.println(driver.getPageSource());

    driver.quit();

预期的结果是页面源与非headless模式下显示的页面源相同。

headless Chrome应该能够处理普通Chrome所能做的一切:

它将Chromium和Blink渲染引擎提供的所有现代web平台功能带到命令行

(见附件)

由于只有银行的登录页面会给您带来麻烦,我猜页面的安全性会检测到异常,并决定不为您服务

一种方法是查看包含
HeadlessChrome
的用户代理字符串


也就是说,除非你正在为银行编写集成测试,否则你的行为至少是可疑的。如果您有合法的顾虑,请先向银行说明。否则,他们可能会对你采取行动。封锁你的IP地址(这可能会影响很多人)或让警察跟你谈谈。

无头chrome可以做任何正常chrome可以做的事情;它只是渲染到屏幕外的缓冲区。JS警告很奇怪。当JS被禁用时,这种情况如何消失?我猜这个页面(银行的登录页面)不知怎么检测到了Selenium,出于安全原因关闭了。当我在无头银行页面中使用Selenium时,这是非常奇怪的。检查日志中的错误。您是否在某个地方看到无头模式下的JavaScript错误(即JavaScript控制台)?你有没有试过浏览其他的网页,比如google.com?我说的是一些特定的网站,当然google正在工作。Chrome驱动程序详细日志记录未显示任何错误。我看到的是一些svg和视频文件加载,我怀疑这就是原因。我不知道。我将从远程使用DevTools开始,如下所述:我这样做了,我在用户代理中看到了
HeadlessChrome
。谢谢!在用户代理中覆盖HeadlessChrome解决了这个问题您是如何做到的@AdiOhana@NoelOmondichromeOptions.addArguments(“--user agent=Mozilla/5.0(Macintosh;英特尔Mac OS X 10_13_6)AppleWebKit/537.36(KHTML,像Gecko)Chrome/73.0.3683.86 Safari/537.36”);