在angularJs应用程序中使用Robot-Selenium填充文本框的行为不符合预期

时间:2014-01-23 14:16:31

标签: angularjs selenium selenium-webdriver robotframework

我在为基于angularJs的应用程序编写机器人硒测试时遇到了一些麻烦。它看起来像这样:

Open Browser To Login Page
    Open Browser  ${login}  ${browser}
    Maximize Browser Window
    Set Selenium Speed  ${sel_speed}
    Wait Until Page Contains  Username

Input Username  [Arguments]  ${username}
    Input Text  ${username}

Input Password  [Arguments]  ${password}
    Input Text  ${password}

Submit Login
    Click Button   css=button

问题是输入字段已填满,但单击按钮时,angular表示没有输入任何内容。我已经看到在selenium中使用sendKeys方法。 Robot-Selenium不直接公开,但您可以使用Press Key关键字进行模拟,但还有其他问题。

有没有人有一个尝试过的方法来让它发挥作用?或者没有其他人遇到麻烦?

1 个答案:

答案 0 :(得分:1)

我找到的解决方案是使用Execute Javascript关键字来使用angular本身来设置字段中的值。我以一种通用的方式创建了一个关键字:

Input Angular  [Arguments]  ${locator}  ${value}
    Execute Javascript   var el1 = window.angular.element(window.$('#${locator}'));  el1.val('${value}'); el1.controller('ngModel').$setViewValue(el1.val());