Adi*_*ana 4 java selenium selenium-chromedriver
我正在尝试使用 Selenium Web 驱动程序以无头模式加载 Chrome 浏览器的网站。我在某些特定网站上遇到问题。页面正在加载,在前 2-3 秒内,它显示一个带有“请启用 javascript...”的页面,3 秒后,页面源变为空白。
我长期使用 Selenium,尤其是 Chrome,并且熟悉这个平台。就本例而言,我在 Mac 操作系统上使用 Chrome 版本 73.0.3683.86 和 ChromeDriver 2.46.628411 (根据Which ChromeDriver version is compatted 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();
Run Code Online (Sandbox Code Playgroud)
预期结果是页面源与非无头模式下显示的页面源相同。
Headless Chrome 应该能够处理普通 Chrome 可以做的所有事情:
它将 Chromium 和 Blink 渲染引擎提供的所有现代 Web 平台功能引入命令行。
(参见https://developers.google.com/web/updates/2017/04/headless-chrome)
由于只有银行的登录页面会给您带来麻烦,我的猜测是该页面的安全性检测到异常并决定不再为您提供服务。
他们可以做到这一点的一种方法是查看包含HeadlessChrome.
也就是说,除非您正在为银行编写集成测试,否则您的行为至少是可疑的。如果您有合理且合法的疑虑,请先与银行解决。否则,他们可能会对您采取行动。封锁您的 IP 地址(这可能会影响很多人)或要求警方与您交谈。