9

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

谢谢!

4

3 回答 3

6

在黄瓜中,我分两步完成了这项工作:

/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 完成此操作的方式——我确信其他驱动程序是相似的。

于 2012-05-09T03:00:41.293 回答
5
Capybara.current_driver = :webkit # temporarily select different driver
#... tests ...
Capybara.use_default_driver       # switch back to default driver
于 2012-05-09T01:37:00.917 回答
1

使用黄瓜,您可以使用标签来实现这一点。例如,如果您的默认驱动程序是 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
于 2017-09-26T14:39:17.053 回答