在 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
谢谢!
在黄瓜中,我分两步完成:
在 /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
这会告诉 Cucumber 在运行该特定方案时使用 javascript
驱动程序。
这就是我使用 Capybara Webkit 完成此操作的方式——我确信其他驱动程序也类似。
Capybara.current_driver = :webkit # temporarily select different driver
#... tests ...
Capybara.use_default_driver # switch back to default driver
对于黄瓜,您可以使用标签来实现这一点。例如,如果您的默认驱动程序是 webkit,但您想使用 selenium 运行某些场景,您可以使用 @selenium
标记它。默认情况下,这适用于gem 'selenium-webdriver'
通常,如果要切换到其他驱动程序(此示例中的无头镶边),请将以下代码放在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