在Capybara提供的文档中,您可以更改特定测试组的default_driver:
describe 'some stuff which requires js', :js => true do
it 'will use the default js driver'
it 'will switch to one specific driver', :driver => :selenium
end
如果我想为特定的黄瓜测试组做这个怎么办?我该如何添加这些参数?
When /^I do something$/ do
fill_in "a_text_box", :with => "stuff"
fill_in "another_text_box", :with => "another_thing"
end
谢谢!
答案 0 :(得分:5)
Capybara.current_driver = :webkit # temporarily select different driver
#... tests ...
Capybara.use_default_driver # switch back to default driver
答案 1 :(得分:5)
在黄瓜中,我分两步完成了这个步骤:
在/features/support/env.rb
中,放置以下行:
Capybara.javascript_driver = :webkit
然后在黄瓜特征中,就在特定场景之前,在场景之前添加@javascript
- 如下所示:
@javascript
Scenario: Successful sign in - with no flash message if using current firefox
When I'm using a current version of Firefox
When I visit the practitioner home page with "jane.doe@example.com"'s token
Then I should be signed in as practitioner "Jane Doe"
And I should be on the practitioner activities welcome page
And I should not see a flash message warning me I have an unsupported browser
这会告诉黄瓜在运行该特定方案时使用javascript
驱动程序。
这就是我使用Capybara Webkit完成此操作的方法 - 我确信其他驱动程序类似。
答案 2 :(得分:0)
使用黄瓜,您可以使用标签实现此目的。例如,如果您的默认驱动程序是webkit,但是您希望使用selenium运行某些方案,则可以使用@selenium
对其进行标记。这默认情况下适用于gem 'selenium-webdriver'
一般情况下,如果您想切换到其他驱动程序(本示例中为Headless chrome),请将以下代码放入features/support/drivers.rb
:
# features/support/drivers.rb
Around '@headless_chrome' do |scenario, block|
begin
Capybara.current_driver = :headless_chrome # temporarily select headless chrome
block.call
ensure
Capybara.use_default_driver # switch back to default webkit driver
end
end