无法使用无头模式 Selenium 定位元素

Cannot locate elements using headless mode Selenium

由于此限制,我无法使用无头模式定位元素 "All users will have to use google Chrome when accessing our sites." 我们的管理员添加了此限制,因此用户只能使用 Google chrome。

我的密码是

@Test(priority = 1)
    public void setupApplication() throws IOException {
        /*
         * open browser (GoogleChrome) and enter user credentials
         */
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--window-size=1920,1080");
        options.addArguments("--disable-gpu");
        options.addArguments("--disable-extensions");
        options.setExperimentalOption("useAutomationExtension", false);
        options.addArguments("--proxy-server='direct://'");
        options.addArguments("--proxy-bypass-list=*");
        options.addArguments("--start-maximized");
        options.addArguments("--headless");

        driver = new ChromeDriver(options);
        driver.get("link"); 
        log.info("Launching chrome browser");

        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(scrFile, new File("C:/Automation Testing/scr3.png"));
    }

很遗憾,我无法展示我们的link。 我的问题是如何绕过这个并找到元素?

提前致谢! enter image description here

更新

如果您想绕过无头代理足迹,请附上以下参数:

--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36

注意:您应用到 user-agent 参数的任何版本都将显示在请求 header 信息中。


...或与您项目的 'admins' 交谈,以便他们可以将无头 chrome 代理包含到 white-list.

这是来自chrome的正常代理信息:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

这里是无头chrome

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100 Safari/537.36

如您所见,无头 chrome 代理被调用:HeadlessChrome