undefined 方法 'delete' for nil:NilClass (NoMethodError) capybara, Selenium-webdriver and Firefox in



我正在写作,因为我在使用黄瓜和水豚运行测试时遇到麻烦。我正在使用带有硒驱动程序的水豚框架。这是我的环境

require 'capybara/cucumber'
Capybara.default_driver = :selenium

这是我的步骤.rb 文件

Given (/^I am on Youtube$/) do 
visit "http://www.youtube.com"
end
When (/^I fill in "([^"]*)" with "([^"]*)"$/) do |field, value|
fill_in(field, :with => value)
end
When (/^I press "([^"]*)"$/) do |button|
click_button(button)
end
Then (/^I should see "([^"]*)"$/) do |text|
page.should have_content(text)
end

这是我获得的输出。我尝试在Mac系统中用黄瓜执行相同的文件,它可以工作。我正在使用内核版本4.10.6-1-ARCH #1 SMP PREEMPT的Arch Linux(antergos)

Feature: YouTube has a search function.
Scenario: Search for a term                                    # features/youtube_search.feature:3
Given I am on Youtube                                        # features/step_definitions/youtube_search_steps.rb:1
undefined method `delete' for nil:NilClass (NoMethodError)
./features/step_definitions/youtube_search_steps.rb:2:in `/^I am on Youtube$/'
features/youtube_search.feature:4:in `Given I am on Youtube'
When I fill in "search_query" with "text adventure"          # features/step_definitions/youtube_search_steps.rb:5
And I press "search-btn"                                     # features/step_definitions/youtube_search_steps.rb:9
Then I should see "GET LAMP: The Text Adventure Documentary" # features/step_definitions/youtube_search_steps.rb:13
Failing Scenarios:
cucumber features/youtube_search.feature:3 # Scenario: Search for a term
1 scenario (1 failed)
4 steps (1 failed, 3 skipped)
0m1.898s

注意:当我运行 cucumber 命令时,会打开一个新的 firefox 窗口,但我看到终端中提到的错误,测试没有继续。

提前谢谢大家。

我遇到了这个问题。当Selenium-webdriver和Firefox版本不匹配时,就会发生这种情况。由于Firefox经常更新,因此您将不时收到此错误。如果你更新你的硒网,它应该可以解决问题。它为我做到了。

最新更新