2017-08-15 42 views
0

我在Windows 7 Enterprise上使用Geb(Selenium & Webdrivers 3.40)和Chrome 60。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但运行我的盖布的测试后,我无法找到这条道路上的任何记录。我试图启用日志,因为我无法使用HTTPS连接内部网站,而且我需要更多有关错误的信息。

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

更新1:

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

更新2:

看来,每当我跑测试中--headless模式和访问内部HTTPS URL我从网络驱动器得到如下伪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请求。有没有人知道这样的行为?

+0

首先手动确认日志作品。因为我怀疑它记录了https和其他细节。此外,日志文件是在配置文件目录中创建的'chrome_debug.log'。请参阅https://www.chromium.org/for-testers/enable-logging –

回答

0

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

'--enable-logging=v=1' 

结合使用这两种。

另外,我发现的调试日志位于应用程序安装目录中。

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

称为

chrome_debug.log 
+1

不适用于我。以下文档说明如下: >要启用日志记录,请使用以下命令行标志启动Chrome: >'--enable-logging --v = 1' https://www.chromium.org/for-测试人员/ enable-logging – saw303

+0

在windows上,这些是为我工作的chrom命令行开关; chrome --enable-logging --v = 1 - 无头--disable-gpu --dump-dom https://www.some-url.com/ – Dan

+0

你可以尝试将它作为一个参数添加吗?=?所以'--enable-logging --v = 4' – Dan