提问人:heebee313 提问时间:1/30/2020 最后编辑:heebee313 更新时间:2/11/2020 访问量:226
最基本的 Selenium 网络驱动程序“Hello World”惨遭失败
Most basic Selenium webdriver "Hello World" fails miserably
问:
我的 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 中我对我可见)?无论如何,我做错了什么?
答:
这里可能会出一些问题。
首先,请确保计算机上安装了最新的 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 来运行硒测试。
评论