Testing 黄瓜+;水豚-填写表单困难-找不到元素
我正在一个已经完成的项目中做我的hello world测试应用程序,我正在经历一些场景,我对所看到的情况感到困惑 我正在使用:Testing 黄瓜+;水豚-填写表单困难-找不到元素,testing,cucumber,capybara,Testing,Cucumber,Capybara,我正在一个已经完成的项目中做我的hello world测试应用程序,我正在经历一些场景,我对所看到的情况感到困惑 我正在使用: Capybara cumber 当我们需要Javascript 所有这些都在Sinatra应用程序上实现 RSpec单独计算,但这不是利息 问题: 当以cumber features/#{feature_name}.feature的形式运行cumber测试时,假设我在特定页面上。我可以通过CSS ID找到元素,但不能单击它们 When(/^I log in with
Capybara
cumber
- 当我们需要
Javascript
- 所有这些都在Sinatra应用程序上实现
- RSpec单独计算,但这不是利息
cumber features/#{feature_name}.feature
的形式运行cumber测试时,假设我在特定页面上。我可以通过CSS ID
找到元素,但不能单击它们
When(/^I log in with email "(.*?)" and password "(.*?)"$/) do |email, password|
step %{I am on login page}
expect(page).to have_css('#login-form')
expect(page).to have_css('#login-button')
within("#login-form") do
fill_in '#username', with: email
fill_in '#password', with: password
click_button 'dfalkjsdfalsdkfja dflkjasdf alkdsjfasd lfkjsf s' # Which should fail, but odesn't :'(
end
click_button 'Sign In'
# click_button '#login-button' # This fails
end
即使我对#登录表单
使用完全随机的不存在的ID,以下测试也将通过。正如你看到的,我有一个按钮,上面有一些愚蠢的文字。如果我把它作为身份证,也没什么区别。考试通过了
但是,当我单独使用它们而不使用内部块时,就找不到元素
但在上面你可以看到expect(第页)。to
语句可以找到它们
上面是一些类似于我在Capybara
repo中看到的例子
我的问题是:
- 我是否可以使用
将目标设置为例如:CSS选择器
#登录表单
- 在块内的
中使用不存在的选择器是否失败?我的情况不是这样的
- 为什么像
fail saying元素not found,而上面的断言似乎找到了它这样的东西在“#password”中填入“password”
- 我是一个新手,所以我建议在设置方面可能出现问题。示例链接也将是伟大的
fill_in
block中的“电子邮件”是什么。似乎不是元素的id
fill_in 'Email', :with => 'user@example.com'
使现代化
在进行了一些尝试之后,我发现下面的工作(查找元素并填充/单击它)。但是块中的不会填充表单。正如我所解释的,任何配置都可以影响
块中的
When(/^I log in with email "(.*?)" and password "(.*?)"$/) do |email, password|
step %{I am on login page}
find('form#login-form').find('input#username').set email
find('form#login-form').find('input#password').set password
find('form#login-form').find('#login').click
within("form#login-form") do
fill_in 'input#username', with: email
fill_in 'input#password', with: password
click_button '#login'
end
end
我无法在
块中的中重现不存在选择器的问题。对我来说确实失败了。对于您的其他问题,问题的主要症结在于fill_in
和click_按钮
不支持CSS选择器-请参阅。@JustinKo:我认为Cucumber/Capybara没有问题。我认为这可能是一些配置问题。文档中不是说“名称、ID或标签文本”吗。我使用的表单没有标签,因此必须依赖于名称和ID。名称是我尝试过的“user[username]”。除非水豚最近更改了,否则您的两次尝试(find
和fill_in
做了两件不同的事情。find
方法正在寻找一个元素谢谢。现在让我试试。但是如果元素被找到了,它不应该引起错误吗?我正在进行测试,但在更改属性ID时注意到了一次。