我正在尝试使用Selenium网络驱动程序以无头模式加载带有Chrome浏览器的网站。我在某些特定的网站上遇到问题。该页面正在加载,在最初的2-3秒内,它显示一个带有“请启用javascript ...”的页面,而在3秒钟后,页面源将变为空白。
我长期使用Selenium,尤其是Chrome,并且我对该平台很熟悉。在这种情况下,我在Mac OS上使用Chrome版本73.0.3683.86和ChromeDriver 2.46.628411(根据Which ChromeDriver version is compatible with which Chrome Browser version?兼容)。 selenium java版本是最新的-3.141.59
我怀疑无头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();
预期结果将使页面源与在非无头模式下显示的页面源相同。
答案 0 :(得分:2)
无头Chrome应该能够处理普通Chrome可以做的所有事情:
它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。
(请参阅https://developers.google.com/web/updates/2017/04/headless-chrome)
由于只有银行的登录页面会给您带来麻烦,所以我猜测该页面的安全性会检测到异常情况并决定不为您服务。
他们可以做到的一种方法是查看包含HeadlessChrome
的用户代理字符串。
也就是说,除非您正在为银行编写集成测试,否则您的行为至少是可疑的。如果您有合法的法律问题,请先与银行联系。他们可能会对您采取行动,否则。阻止您的IP地址(这可能会影响很多人),或要求警察与您说句话。