google-chrome - 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");
小伙伴们有没有遇到过呢?我发现了一些之前已经描述过该问题的线程,但我找不到任何解决方案..
谢谢 :)
解决方案
我遇到了同样的问题并通过以下解决方案解决了
- 先获取浏览器的userAgent:
String userAgent = (String) ((JavascriptExecutor) driver).executeScript("return navigator.userAgent;");
System.setProperty("useragent",userAgent);
- 将其添加到浏览器选项,如下所示
options.addArguments("--user-agent="+System.getProperty("useragent"));
推荐阅读
- java - 创建后无法打开pdf
- javascript - 无法使用 mamp 从 AJAX 接收数据
- c++ - 使用递归的 myProgrammingLab 回文挑战
- java - Android Bundle java.lang.NoClassDefFoundError
- c - 为什么 malloc 没有分配指定的内存量?
- python - 在for循环中填充空的numpy数组
- android - Constraintlayout Vertical Bias 在Android的两个视图中不起作用
- c# - C#:是否可以为类型约束强制转换泛型类型?
- html - 如何制作一个滚动到页面底部的按钮?
- python - Python docx2pdf:如何抑制输出消息 HBox(children=(FloatProgress(value=0.0, max=6.0), HTML(value='')))