我正在尝试通过 http basic 测试登录,但不断出现错误,我已经上传了代码 here
我有 http_basic_authenticate_with name: "name", password: "password"
在我的应用程序 Controller 中
我的登录步骤定义是;
Given /^I login as admin$/ do
authorize "name", "password"
end
但它不起作用,我得到了错误
expected there to be content "Posts" in "HTTP Basic: Access denied.\n"
(RSpec::Expectations::ExpectationNotMetError)
谁能告诉我如何让 cucumber/capybara 登录?
最佳答案
我让它使用两种不同的方法中的一种;选择你:
### Following works ONLY if performed first before even going to a page!!!
if page.driver.respond_to?(:basic_auth)
puts 'Responds to basic_auth'
page.driver.basic_auth(username, password)
elsif page.driver.respond_to?(:basic_authorize)
puts 'Responds to basic_authorize'
page.driver.basic_authorize(username, password)
elsif page.driver.respond_to?(:browser) && page.driver.browser.respond_to?(:basic_authorize)
puts 'Responds to browser_basic_authorize'
page.driver.browser.basic_authorize(username, password)
else
raise "I don't know how to log in!"
end
我的测试响应了 browser_basic_authorize
或
encoded_login = ["#{username}:#{password}"].pack("m*")
page.driver.header 'Authorization', "Basic #{encoded_login}"
两者都是我在搜索中的几个地方找到的。
关于ruby-on-rails - cucumber 中的http基本身份验证测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7473477/