在对话框/提示中输入密码

时间:2017-06-15 12:33:26

标签: ruby selenium capybara

如何在浏览器警报/对话框窗口中输入密码。加载URL时显示。它不是基本的身份验证提示,而是密码提示,它阻止与页面的任何交互,直到输入密码。我正在与Capybara使用硒红宝石。我尝试过以下方法:

page.driver.browser.switch_to.alert.send_keys("Password")

但它没有输入任何内容

Prompt screenshot

2 个答案:

答案 0 :(得分:2)

这可能会对您有所帮助: -

String Password = URLEncoder.encode(“pass”);

String UserName = URLEncoder.encode(“UserName”);

String url = String.format(“http://%s:%s@xyz”,                         用户名,密码);

在这个%s中是变量,它以参数的形式传递给url。

您也可以参考此网址https://serverfault.com/questions/371907/can-you-pass-user-pass-for-http-basic-authentication-in-url-parameters

答案 1 :(得分:2)

如果您尝试填写的内容是由JS window.prompt触发的系统模式,那么您可以像

一样处理它
page.accept_prompt(with: "The text to fill in") do
  page.click_button "Go" # whatever action triggers the prompt to appear
end

如果它是系统身份验证模式(不是由JS打开),那么您无法从Capybara访问它,并且必须使用特定于您所用平台的完整系统自动化工具如果您无法通过您尝试访问的网址中的凭据,请使用