使用远程调试端口参数从Watir-WebDriver启动Google Chrome?

问题描述 投票:1回答:2

希望这是一个简单的问题,但我希望将参数“--remote-debugging-port = 9222”传递给我在我的Ubuntu框中使用Watir-WebDriver实例化的浏览器。我正在使用ChromeDriver 2.9和Google Chrome 32。

这就是我通常会这样做的方法:

b = Watir::Browser.new :chrome, :switches => %w[--remote-debugging-port=9222]
b.close

奇怪的是浏览器打开一个空白页面。大约30秒后,浏览器实例关闭 - 可能是因为ChromeDriver和谷歌Chrome之间无法建立连接。

作为预防措施,我进行了一些初步测试。我可以使用Watir-WebDriver在没有任何参数的情况下启动Chrome浏览器实例,没有任何问题。此外,我还可以使用--remote-debugging-port参数从命令行启动Google Chrome。所以我默认情况下,Watir-WebDriver和谷歌浏览器运行正常,让我相信我错误地指定了我的论点。

关于这里可能出现什么问题的任何建议?

google-chrome watir-webdriver selenium-chromedriver
2个回答
3
投票

作为我之前发布的这个问题的后续内容 - 结果证明Chromedriver通过远程调试端口建立了与浏览器的连接。

试图覆盖它将阻止chromedriver与浏览器通信,导致它超时,从而停止我想要在其轨道上执行的任何自动化。

以下额外信息

我设法绕过需要连接到浏览器的远程调试端口来完成我想要做的事情。如果有人感兴趣,我试图附加到远程调试端口以捕获浏览器级别的活动。值得庆幸的是,chromedriver将通过日志收集所有网络面板信息,您可以通过REST API或自动化脚本访问这些日志。

要启用此日志记录,您需要将一些参数传递给webdriver。这就是我目前的做法:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("loggingPrefs"=>{"browser"=>"ALL", "performance"=>"ALL"})
driver = Selenium::WebDriver.for :remote, :url => 'http://localhost:4444/wd/hub', :desired_capabilities => caps
b = Watir::Browser.new driver

然后,要从自动化脚本中检索日志,请执行以下操作:

b.driver.manage.logs.get "browser"

需要注意的是,您可以捕获几种不同类型的日志,具有不同级别的详细程度。这里有几种日志类型:

  1. “性能”捕获时间线和网络面板事件
  2. “browser”捕获浏览器级数据
  3. “driver”捕获驱动程序级数据。

希望其他人能够利用这些信息来发挥他们的优势!


0
投票

你可以试试

browser = Watir::Browser.new(
  :chrome, 
  'chromeOptions' => {'debuggerAddress': '127.0.0.1:9222'})

这将强制chrome使用端口9222进行调试

© www.soinside.com 2019 - 2024. All rights reserved.