问题描述
过去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");
你们遇到过吗?我发现一些线程已经解决了这个问题,但是我找不到任何解决方案。
谢谢:)
解决方法
我也遇到了您的问题,并通过以下解决方案解决了该问题
- 首先获取浏览器的userAgent:
String userAgent = (String) ((JavascriptExecutor) driver).executeScript("return navigator.userAgent;");
System.setProperty("useragent",userAgent);
- 如下所示将其添加到浏览器选项
options.addArguments("--user-agent="+System.getProperty("useragent"));