【问题标题】:Starting Google Chrome from Watir-WebDriver with the Remote Debugging Port Argument?使用远程调试端口参数从 Watir-WebDriver 启动 Google Chrome?
【发布时间】:2014-03-31 19:49:18
【问题描述】:

希望这是一个简单的问题,但我希望将参数“--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 和 Google Chrome 之间建立连接。

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

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

【问题讨论】:

    标签: google-chrome watir-webdriver selenium-chromedriver


    【解决方案1】:

    作为对我不久前发布的这个问题的跟进 - 结果表明 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. “浏览器”捕获浏览器级数据
    3. “驱动程序”捕获驱动程序级数据。

    希望其他人能够利用这些信息为自己谋利!

    【讨论】:

      【解决方案2】:

      你可以试试

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

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

      【讨论】:

        猜你喜欢
        • 2019-01-04
        • 1970-01-01
        • 2017-11-07
        • 1970-01-01
        • 2022-07-28
        • 1970-01-01
        • 1970-01-01
        • 2011-01-25
        相关资源
        最近更新 更多