Selenium与Ruby:处理带有2个字段的JS提示

时间:2018-06-27 14:36:36

标签: ruby selenium-webdriver

我希望Selenium连接到我的暂存站点,该站点驻留在WPEngine上。因此,每次连接时,它都会在Javascript提示符下要求我输入用户名和密码。

我可以轻松地将文本发送到提示中的第一个(用户名)字段:

def connectToStaging()
    alert = @browser.switch_to.alert
    if /username and password/.match(alert.text)
        alert.send_keys("username")
    end
end

但是我不知道如何切换到密码字段来做同样的事情。

我已经尝试在发送字符串“ username”之后立即发送一个制表符:

alert.send_keys(:tab)

但返回错误: NoMethodError::tab:Symbol的未定义方法“ split”

否则我不知道是否有一种方法可以使用 find_element 来定位该字段?还是有一个函数可以在当前指针所在的任何窗口或窗体中切换到下一个字段?

非常感谢!

2 个答案:

答案 0 :(得分:1)

由于@ max-pleaner,已经找到了解决方案。

Documentation here

我选择了第一个建议的解决方案:您可以通过将凭据直接放在url中来进行身份验证:https://username:password@www.yoursite.com

非常感谢您的帮助!

答案 1 :(得分:0)

写一个

alert.send_keys("username",:tab,"password")