首页 > 解决方案 > Selenium Webdriver Headless Mode 显示空白页

问题描述

在过去的 2 个小时里,我一直在试图找出为什么无头模式会搞砸我的程序。当我禁用无头模式时,一切正常,我可以毫无问题地运行程序,但是当启用 (--headless) 时,我的 webdriver 找不到任何元素,因为页面只是空白。

我真的很感激一些帮助,我猜该网站正在检测无头模式并因此显示空白页面?有没有办法绕过它?

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

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");

小伙伴们有没有遇到过呢?我发现了一些之前已经描述过该问题的线程,但我找不到任何解决方案..

谢谢 :)

标签: google-chromeautomationwebdriverheadless

解决方案


我遇到了同样的问题并通过以下解决方案解决了

  1. 先获取浏览器的userAgent:

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

System.setProperty("useragent",userAgent);

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

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


推荐阅读