无头Chrome-获取空白页源

时间:2019-04-02 15:59:46

标签: java selenium selenium-chromedriver

我正在尝试使用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();

预期结果将使页面源与在非无头模式下显示的页面源相同。

1 个答案:

答案 0 :(得分:2)

无头Chrome应该能够处理普通Chrome可以做的所有事情:

  

它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。

(请参阅https://developers.google.com/web/updates/2017/04/headless-chrome

由于只有银行的登录页面会给您带来麻烦,所以我猜测该页面的安全性会检测到异常情况并决定不为您服务。

他们可以做到的一种方法是查看包含HeadlessChrome的用户代理字符串。

也就是说,除非您正在为银行编写集成测试,否则您的行为至少是可疑的。如果您有合法的法律问题,请先与银行联系。他们可能会对您采取行动,否则。阻止您的IP地址(这可能会影响很多人),或要求警察与您说句话。