Chrome 60支持以无头模式登录

时间:2017-08-15 06:11:06

标签: google-chrome selenium selenium-chromedriver geb

我在Windows 7 Enterprise上使用Geb(Selenium& Webdrivers 3.40)和Chrome 60。

我的GebConfig.groovy定义了一个chrome环境,可使用以下起始参数--headless --disable-gpu --disable-plugins --enable-logging --v=1配置Chrome。

environments {

    chrome {
        ChromeDriverManager.instance.setup()
        driver = {

            ChromeOptions options = new ChromeOptions()
            options.addArguments('--headless', '--disable-gpu', '--disable-plugins', '--enable-logging', '--v=1')

            def capabilities = DesiredCapabilities.chrome()
            capabilities.setCapability(ChromeOptions.CAPABILITY, options)

            def driver = new ChromeDriver(capabilities)
            return driver
        }
    }
}

根据此post Chrome应该登录到~/.config/google-chrome,但在运行我的Geb测试后,我找不到该路径上的任何日志。我尝试启用日志,因为我无法使用HTTPS连接内部网站,我需要更多关于出错的信息。

您能否告诉我如何正确启用日志以及我可以在哪里找到Google Chromes日志输出?

更新1:

根据此documentation,日志保存在%LOCALAPPDATA%\Google\Chrome\User Data\chrome_debug.log下。我发现日志但它是空的。 由于我似乎无法通过SSL连接,我想知道如何让Chrome告诉我问题所在。有什么想法吗?

更新2:

似乎每当我以--headless模式运行测试并访问内部HTTPS URL时,我都会从Web驱动程序中获取以下虚拟HTML。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <pre style="word-wrap: break-word; white-space: pre-wrap;"></pre><iframe name="chromedriver dummy frame" src="about:blank"></iframe>
</body>
</html>

在服务器日志中,我看不到任何传入的HTTP请求。有谁知道这样的行为?

2 个答案:

答案 0 :(得分:1)

根据this page,日志记录取决于平台:

在Linux上:

--enable-logging=stderr --v=1

在Windows上:

--enable-logging --v=1
--enable-logging=stderr --v=1 > log.txt 2>&1  # Seems to capture more output

我已经在Linux上进行了测试,并且工作正常。

日志保存在Chrome的用户数据目录中。

答案 1 :(得分:0)

我认为你的最后一个参数应该是

'--enable-logging=v=1'

结合两者。

我找到的调试日志也在应用程序安装目录中。

C:\Program Files (x86)\Google\Chrome\Application\<chrome version>

称为

chrome_debug.log