机器人框架 - Focus/Select DropDown 弹出窗口 window

Robot Framework - Focus/Select DropDown popup window

我需要使用 Robot Framework 编写 UI 测试。我在这个网站https://www.cosmote.gr/hub/(网页右上角select英文)模拟用户登录。用户应单击 Login/Register 并出现弹出窗口 window:

popup window

我正在尝试在电子邮件文本字段和密码字段中添加输入文本,然后按下按钮登录。由于我是 Robot Framework 的新手,我不知道如何在弹出窗口 window 中聚焦,因此我的测试失败了 - 它无法在弹出窗口 window.

中找到文本字段

login example

我的代码是:

    *** Settings ***
Documentation    Present some information about this test suite
Library  Selenium2Library

*** Variables ***
${Browser} =  ff
${HOME_PAGE} =  https://www.cosmote.gr/hub/
${BUTTON_LOGIN} =  //*[@id="wcs_header"]/div[5]/div[1]/div[2]/div/div
${VALID_USERNAME} =  
${VALID_PASSWORD} =  
${PAGE_CONTAINS} =  My COSMOTE
${USERNAME_FIELD} =  //*[@id="loginIn"]
${PASSWORD_FIELD} =  //*[@id="pwdIn"]
${SUBMIT_BUTTON} =  //*[@id="loginBtnIn"]
${POPUP} =  //*[@id="cosid_md_login"]/div[2]
${FRAME} =  idmframeIn

*** Test Cases ***
User Login With Valid Credentials
    [Tags]  Login
    Open Browser  ${HOME_PAGE}  ${Browser}
    Wait Until Element Is Visible  ${BUTTON_LOGIN}
    Click Element  ${BUTTON_LOGIN}
    Wait Until Page Contains  ${PAGE_CONTAINS}
    Select Frame  id=${FRAME}
    Input text  ${USERNAME_FIELD}  ${VALID_USERNAME}
    Input password  ${PASSWORD_FIELD}  ${VALID_PASSWORD}
    Click Element  ${SUBMIT_BUTTON}
    Wait Until Page Contains  Hello
    Close Browser

如何 focus/select 弹出窗口 window 以便找到文本字段和登录按钮元素?

在此先感谢您的帮助!

在 运行 你的例子之后我注意到 window 没有扩展到最大尺寸。这可能会导致搜索栏和 link 重叠。当我添加解决该特定问题的 Maximize Browser Window 关键字时。

由于 Select Frame 引起了问题,并且不需要它,因此将其从脚本中删除。

下面的脚本运行并填充值。由于用户名和密码无效,最终检查因登录失败而未通过。然而,这是意料之中的。

*** Settings ***
Documentation    Present some information about this test suite
Library  Selenium2Library

Suite Teardown    Close All Browsers

*** Variables ***
${Browser} =  chrome
${HOME_PAGE} =  https://www.cosmote.gr/hub/
# ${BUTTON_LOGIN} =  //*[@id="wcs_header"]/div[5]/div[1]/div[2]/div/div
${BUTTON_LOGIN} =  id=cosid_md_login
${VALID_USERNAME} =  dummy
${VALID_PASSWORD} =  dummy
${PAGE_CONTAINS} =  My COSMOTE
${USERNAME_FIELD} =  //*[@id="loginIn"]
${PASSWORD_FIELD} =  //*[@id="pwdIn"]
${SUBMIT_BUTTON} =  //*[@id="loginBtnIn"]
#${FRAME} =  idmframeIn

*** Test Cases ***
User Login With Valid Credentials
    [Tags]  Login
    Open Browser  ${HOME_PAGE}  ${Browser}
    Maximize Browser Window
    Wait Until Element Is Visible  ${BUTTON_LOGIN}
    Click Element  ${BUTTON_LOGIN}
    Wait Until Page Contains  ${PAGE_CONTAINS}
    # Select Frame  id=${FRAME}
    Input Text    ${USERNAME_FIELD}  ${VALID_USERNAME}
    Input password  ${PASSWORD_FIELD}  ${VALID_PASSWORD}
    Click Element  ${SUBMIT_BUTTON}
    Wait Until Page Contains  Hello
    Close Browser