【问题标题】:How can I run selenium-webdriver script written in Ruby in headless mode on digital-ocean droplet?如何在数字海洋水滴上以无头模式运行用 Ruby 编写的 selenium-webdriver 脚本?
【发布时间】:2019-06-30 09:54:37
【问题描述】:

我无法在数字海洋水滴上运行 ruby​​ 脚本。我尝试使用 selenium-webdriver 和 watir gem 运行,但不起作用。

我尝试使用不同版本的 chromedriver 运行,也更改了 selenium-webdriver 的 gem 版本,但没有奏效。 我的红宝石-v:红宝石2.3.1p112 硒网络驱动程序-v:(3.141.0) Chromedriver -v:2.46

需要'selenium-webdriver'

options = Selenium::WebDriver::Chrome::Options.new(args: ['start-maximized','disable-gpu', 'no-sandbox', 'disable-setuid-sandbox', 'disable- dable-dev-shm-usage'],二进制:('/bin/chromedriver')) options.headless!

driver = Selenium::WebDriver.for(:chrome, options: options)

我得到的错误: /usr/share/rvm/gems/ruby-2.3.1/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok':未知错误:Chrome 无法开始:异常退出(Selenium::WebDriver::Error::UnknownError) 未知错误:DevToolsActivePort 文件不存在)

感谢关注!

【问题讨论】:

    标签: ruby selenium-webdriver web-scraping selenium-chromedriver digital-ocean


    【解决方案1】:

    这就是我让 Chrome 在无头模式下运行的方法:

    options = Selenium::WebDriver::Chrome::Options.new(args: ['headless'])
    driver = Selenium::WebDriver.for :chrome, options: options
    

    您错误地传递了一些参数,应该包括无头模式。如果您的 chromedriver.exe 已正确添加到您的 PATH 中,您也不应该需要 binary: ('/bin/chromedriver')

    因此,对于您上面的示例,以下内容应该有效:

        options = Selenium::WebDriver::Chrome::Options.new(args: ['headless', 
        'start-maximized','disable-gpu', 'no-sandbox', 'disable-setuid-sandbox', 
        'disable-dable-dev-shm-usage'])
         driver = Selenium::WebDriver.for :chrome, options: options
    

    希望这会有所帮助, 丹

    【讨论】:

    • 感谢您的帮助,丹!
    • 没问题,如果没问题,请你给答案投票:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2017-07-07
    • 2019-10-04
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多