我正在尝试在我的页面上测试登录功能,该页面有一个隐藏的表单。功能文件:
Feature: Test login page
As a visitor to the site
I can login
Scenario: User login
When I go to http://abc.com/
And I enter username: abc and password: abc
Then I should see "My Account (abc)"
Step_Definitions:
When /^I go to (.*)$/ do |path|
visit path
end
require 'net/http'
When (/^I enter username: abc and password: abc$/) do
uri = URI('http://www.abc.com/')
res = Net::HTTP.post_form(uri,{ 'username' => 'abc' , 'password' => 'abc'})
puts res
end
Then /^I should see "(.*)"$/ do |text|
page.should have_content(text)
end
用户名和密码正确,但此方案失败。我是否使帖子正确..我需要保持会话或其他什么吗?res的输出也不正确,它甚至没有登录。
感谢Justin,解决方案->不要使用HTTP post,因为selenium和capybara是模仿用户行为的用户。所以请遵循用户的流程。