我正在测试一个在右侧有一个垂直登录表单,在底部有一个水平表单的网站。两者都有同名的“电子邮件”和“密码”字段。因此,我正在使用 capybarawithin
来确定我感兴趣的领域。Web 表单中有趣的部分如下所示:
我有两个独立的项目,我正在试验自动化酱汁实验室。第一个项目是水豚专用示例,经过修改以测试上面显示的页面。第二个项目是完全相同测试的黄瓜实现。这些是非常简单的一次性硬编码测试,只是为了获得这两种技术的概念证明。
这是水豚专用示例的有趣之处:
within(:css, ".right-container.login-form") do
fill_in 'email', :with => "greg.gauthier+#{generate_email_suffix}@website.com"
fill_in 'password', :with => 'l33tP@$$w0rd'
click_button 'Submit'
end
这是黄瓜 step_definition 的有趣部分:
When(/^The user enters his information$/) do
within(:css, ".right-container.login-form") do #the page has duplicate forms
fill_in 'email', :with => "greg.gauthier+#{generate_email_suffix}@website.com"
fill_in 'password', :with => 'l33tP@$$w0rd'
click_button 'Submit'
end
end
当我运行水豚专用版本时,一切正常。表格被填写,电子邮件确认被发送。
但是,当我运行黄瓜版本时,出现此错误:
Unable to find css ".right-container.login-form" (Capybara::ElementNotFound)
怎么会这样?这是完全相同的页面,完全相同的 capybara 方法(within
使用:css
选择器)和完全相同的测试代码。我没有得到什么(除了我可能弄错了)?
哦,这是 sauce_helper 中的 require 列表的样子:
水豚专用版本:
require "sauce"
require "sauce/capybara"
require 'capybara/rails'
require 'capybara/rspec'
黄瓜版:
require "sauce"
require "sauce/capybara"
require "sauce/cucumber"
我是否可能需要在黄瓜版本中加入额外的水豚宝石?