我是Capybara
的新手。我对Capybara
与Selenium Webdriver
一起使用时Given(/^I am on the Youtube homepage$/) do
# visit 'http://www.youtube.com'
driver = Selenium::WebDriver.for :firefox
driver.navigate.to('http://www.youtube.com')
end
When(/^I search for "([^"]*)"$/) do |search_term|
fill_in 'search_query', :with => search_term
click_on 'search-btn'
end
Then(/^videos of large rodents are returned$/) do
expect(page).to have_content 'Making Friends with a Capybara'
end
无效的原因有疑问。
这是我的示例代码:
Firefox
当我运行它时,它只需打开Youtube
并转到Capybara::ElementNotFound: Unable to find field "search_query"
主页。但它会出错:
visit 'http://www.youtube.com'
。
一切都适用于web.config
命令。
答案 0 :(得分:1)
你正在创建一个驱动程序,告诉它导航到一个页面然后它超出了范围,所以它被删除了。 visit
行有效,因为它使用当前的capybara驱动程序,它在测试步骤之间保持不变。不是手动创建驱动程序,而是应该向Capybara注册驱动程序,然后指定用于特定测试的驱动程序。见drivers
由于capybara默认设置一个selenium驱动程序用于firefox你可以做到
Capybara.default_driver = :selenium
在运行测试之前的某个地方使用selenium和firefox运行所有测试,或者因为capybara将selenium注册为默认的javascript驱动程序,您可以使用@javascript标记要在firefox中运行的任何场景here
@javascript
Scenario: do something something
Given ...