我想在其中写入“用户名和密码”处理警报,然后单击“确定”

时间:2017-06-03 18:32:01

标签: python robotframework selenium2library

当我们导航到网站并请求身份验证时弹出窗口。像this这样的东西。请告诉我如何使用用户名和密码处理警报,弹出,因为弹出窗口无法与firebug等区分开来

我已经尝试了“输入文字进入提示”#input text into prompt https://username:password@url.com,但我收到错误There is no alert present。但是,当我使用函数Alert should be present时,它会被传递

我正在使用机器人框架和Selenium2Library。

1 个答案:

答案 0 :(得分:0)

您遇到的内容称为BASIC Web服务器身份验证。在搜索SO时,随着时间的推移有许多类似的问题。这个particular one很好,因为它有几种可以尝试的解决方案。

由于弹出窗口在技术上不是页面DOM的一部分,因此无法使用xpath解决此问题。大致有两种方法:

  1. 使用像SendKeys这样的键击模拟器填写文本框。
  2. 防止弹出窗口出现。
  3. 在这种情况下,你已经准备好了第二个。通过在URL中包含用户名和密码,可以防止弹出窗口。以下Robot Script使用该示例访问使用this tutorial通过基本身份验证保护的本地页面。

    *** Settings ***
    Library    Selenium2Library
    
    *** Test Cases ***
    Test Chrome
        Create Webdriver    Chrome
        Go To    http://admin:admin@localhost:8090/basic-auth/
        Capture Page Screenshot    
        [Teardown]  Close All Browsers
    

    由于阻止了弹出窗口,因此无需单独输入用户名和密码。