首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用chromedriver运行测试时出现的问题

尝试使用chromedriver运行测试时出现的问题
EN

Stack Overflow用户
提问于 2018-08-07 18:55:27
回答 4查看 1.1K关注 0票数 1

我目前在尝试使用chromedriver运行Ruby测试时遇到了一个问题。

我使用selenium-webdriver 3.14.0,cucumber 3.1.2,Windows 10

每当我使用firefox运行测试时,它们都加载和运行得很好,没有任何问题。然而,当我将它们中的一个更改为使用chromedriver并尝试运行它时,我得到了以下错误:

代码语言:javascript
复制
unable to connect to chromedriver 127.0.0.1:9515

我将chromedriver放在PATH中,并使用以下代码尝试初始化ruby代码中的驱动程序:

代码语言:javascript
复制
require 'selenium-webdriver'

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-translate')

driver1 = Selenium::WebDriver.for :chrome, options: options

Given (/^we navigate to the Timesheets area$/) do
driver1.navigate.to "test"
driver1.find_element(:id, 'EmailAddress').send_keys("test")
driver1.find_element(:id, 'Password').send_keys("test")
driver1.find_element(:css, 'button').click
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
begin
    element = wait.until { driver1.find_element(:class => "name") }
end
    driver1.find_element(:css, 'i.fa.fa-clock-o').click
    begin
    element = wait.until { driver1.find_element(:class => "pull-left") }
    expect(element.text).to eq('Timesheets')
    end
end

    en (/^we click the Add New Timesheet Button$/) do
    driver1.find_element(:css, 'a.pull-right').click
   end

Then (/^we should be taken to the Add New Timesheet Page$/) do
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
begin
    element = wait.until { driver1.find_element(:css => "h1.pull-left") }
    expect(element.text).to eq('Add Timesheet')
ensure
    driver1.quit
end
end

在这方面所能提供的任何帮助都将不胜感激

编辑:使用完整错误堆栈跟踪进行了更新:

代码语言:javascript
复制
unable to connect to chromedriver 127.0.0.1:9515 
(Selenium::WebDriver::Error::WebDriverError)
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver/common/service.rb:142:in `connect_until_stable'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3 
3.14.0/lib/selenium/webdriver/common/service.rb:72:in `block in start'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver/common/socket_lock.rb:39:in `locked'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver/common/service.rb:69:in `start'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver/chrome/driver.rb:43:in `initialize'
 C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver/common/driver.rb:44:in `new'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver/common/driver.rb:44:in `for'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver- 
3.14.0/lib/selenium/webdriver.rb:86:in `for'
C:/Ruby25-x64/features/step_definitions/timesheet_steps.rb:9:in `<top 
(required)>'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/glue/registry_and_more.rb:107:in `load'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/glue/registry_and_more.rb:107:in `load_code_file'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/runtime/support_code.rb:144:in `load_file'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/runtime/support_code.rb:85:in `block in load_files!'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/runtime/support_code.rb:84:in `each'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/runtime/support_code.rb:84:in `load_files!'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/runtime.rb:272:in `load_step_definitions'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/runtime.rb:68:in `run!'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber- 
3.1.2/lib/cucumber/cli/main.rb:34:in `execute!'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/cucumber-3.1.2/bin/cucumber:9:in `<top 
(required)>'
 C:/Ruby25-x64/bin/cucumber:23:in `load'
 C:/Ruby25-x64/bin/cucumber:23:in `<main>'

编辑2:我现在使用的是Watir,它默认使用Chrome。我通过在命令提示符下使用irb来使用交互式Ruby控制台。

我运行的唯一命令是:

代码语言:javascript
复制
 require "Watir"
 b = Watir::Browser.new

然后我得到了下面的堆栈跟踪:

代码语言:javascript
复制
Traceback (most recent call last):
   12: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
   11: from (irb):3
   10: from (irb):3:in `new'
    9: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/watir-6.12.0/lib/watir/browser.rb:48:in `initialize'
    8: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver.rb:86:in `for'
    7: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/driver.rb:44:in `for'
    6: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/driver.rb:44:in `new'
    5: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/chrome/driver.rb:43:in `initialize'
    4: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/service.rb:69:in `start'
    3: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/socket_lock.rb:39:in `locked'
    2: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/service.rb:72:in `block in start'
    1: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/service.rb:142:in `connect_until_stable'
Selenium::WebDriver::Error::WebDriverError (unable to connect to chromedriver 127.0.0.1:9515)

我是不是遗漏了什么,因为我在路径中设置了ChromeDriver,所以在我的脑海中,它应该运行起来没有任何问题,因为火狐运行得很棒

EN

回答 4

Stack Overflow用户

发布于 2018-08-08 02:29:47

使用webdrivers.gem自动使您的驱动程序保持最新。路径可能会变得很复杂,所以webdriver gem会忽略它,并指定Selenium应该独立查找驱动程序的位置。它也不像chromedriver-helper那样使用垫片,所以它不会弄乱任何系统设置。只需将gem添加到您的gemfile/gemspec中,然后在您的代码中使用require 'webdrivers'

票数 1
EN

Stack Overflow用户

发布于 2018-08-07 19:15:48

这个问题与旧版本的Chromedriver有关。有些Selenium版本不能处理旧版本的chromedriver。

请更新或安装最新的gem。

票数 0
EN

Stack Overflow用户

发布于 2018-08-07 23:01:31

尝试使用chromedriver-helper gem。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51725080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档