最基本的 Selenium 网络驱动程序“Hello World”惨遭失败

Most basic Selenium webdriver "Hello World" fails miserably

提问人:heebee313 提问时间:1/30/2020 最后编辑:heebee313 更新时间:2/11/2020 访问量:226

问:

我的 selenium webdriver 'hello world' 程序出错。很抱歉,因为我对此很陌生。

我启动了一个新的 Ubuntu 映像,这是我的设置:

  • 安装了 Google Chrome 的 Ubuntu 18.04
  • Ruby on Rails
  • 已安装 selenium-webdriver gem
  • 已安装 VNC

我的“hello world”计划:

        require "selenium-webdriver"
        **driver = Selenium::WebDriver.for :chrome**
        driver.navigate.to "http://www.google.com"
        element = driver.find_element(:name, 'q')
        element.send_keys "Hello Selenium WebDriver!"
        element.submit
        puts driver.title

这会吐出错误:

/home/user/.rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/response.rb:72:in 'assert_ok': 未知错误:Chrome 无法启动:异常退出 (Selenium::WebDriver::Error::UnknownError) (未知错误:DevToolsActivePort 文件不存在) (从 chrome 位置 /usr/bin/google-chrome 启动的进程不再运行,因此 ChromeDriver 假定 Chrome 已崩溃。 (驱动程序信息:chromedriver=2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706),platform=Linux 5.0.0-1028-gcp x86_64)

(此错误发生在粗体代码行处)

我检查了 google-chrome 和 google-chrome-stable 的 whereis 命令。它们都在 /usr/bin/ 中

我还安装了 VNC,我正在查看操作系统。当我运行这个程序时,我希望Chrome弹出,但什么也没发生。

Selenium 应该启动 chrome 吗(在 VNC 中我对我可见)?无论如何,我做错了什么?

Ruby-on-Rails 硒 google-chrome selenium-webdriver chrome-web-driver

评论

0赞 snnguyen 2/1/2020
您是否使用活动调试端口启动了 Chrome?stackoverflow.com/a/60008226/2662958

答:

0赞 scilence 2/11/2020 #1

这里可能会出一些问题。

首先,请确保计算机上安装了最新的 chromedriver 副本。您可以提取可执行文件并将其放置在 $PATH 中包含的任何位置(以查看这些目录所在的位置)。echo $PATH

如果仍有问题,值得尝试将以下选项添加到驱动程序初始化中,如下所示:

options = Selenium::WebDriver::Chrome::Options.new
options.headless!
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = Selenium::WebDriver.for :chrome, options: options

如果这对您有用,这可能是与已安装(或未安装)的 x 窗口管理器相关的问题。或者,除了搞砸类似的东西,您可以查看 XVFB 来运行硒测试。