我正在测试登台服务器上的一项功能,该功能需要基本身份验证才能访问该站点。我使用以下命令运行它:
Capybara.app_host = "http://user:password@this.isanexample.com"
在方案中的某一点,我访问使用https而不是http的页面,并要求我再次输入用户和密码才能继续。如果我再次使用访问会很容易,但我实际上想要点击链接...
我怎样才能超越这个?我已经用疯狂的谷歌搜索了,但无法真正找到有效的解决方案。
我发现了这个:http://theadmin.org/articles/test-http-basic-authentication-in-rails/,但我不知道如何实现它。我对这一切都很陌生,所以我可能会错过这一点。
有人能指出我正确的方向吗?
这是我的代码:
env.rb
require 'capybara/cucumber'
Capybara.app_host = "https://user:password@this.isanexample.com"
Capybara.default_driver = :selenium
Capybara.default_wait_time = 5
Capybara.ignore_hidden_elements = true
Capybara.current_session.driver.browser.manage.window.resize_to(1024, 1000)
checkout_steps.rb(删节)
Given /^I am on the main page$/ do
visit('/')
end
When /^I navigate to the page with the available boxes$/ do
page.find(:xpath, "//a[contains(@href,'how-it-works')]").click
page.find(:xpath, "//a[contains(@class,'join')]").click
end
When /^I choose a monthly subscription$/ do
page.find(:xpath, "//span[contains(@class,'title') and .[contains(., 'Unbefristetes Abo')]]").click
page.find_button("Jetzt Bestellen").click
end
答案 0 :(得分:0)
我通过删除网站本身的身份验证解决了这个问题。如果测试在公司网络内运行,则身份验证弹出窗口将不再显示。事实证明,这在很多方面都是更好的解决方案。