机器人框架中的click元素无效

时间:2017-02-23 10:26:41

标签: robotframework

Click Element在Robot Framework中不起作用,在log.html中它显示它点击了元素,但实际上并没有在浏览器上发生

此应用程序不是Angular JS应用程序。

我在其他应用程序中尝试了相同的功能,这是一个Angular JS,它运行良好。

我的机器人代码如下:

*** Settings ***
Library    Selenium2Library
*** TestCases *** 
   Login to Application
        Open Browser    ${url}    ff
        Maximize Browser Window
        Select from List by value    id=selectedCountry    MU
        Input Text    id=userid    rajaint
        Input Password    id=password    rajaint1
        Click Element    id=Submit1

这可能是什么原因?

当我在登录时停止时,我陷入了自动化状态。

我无法共享应用程序网址,因为它是保密的。

5 个答案:

答案 0 :(得分:3)

与Sarada签订chat后 - 我们发现问题出在他的申请上。问题是应用程序必须失去下拉菜单和用户名字段的焦点,以便验证通过 - 并允许来自机器人的更多输入。

经过一些跟踪和错误之后,我们想出了如何失去元素的焦点并允许验证按预期工作;这反过来意味着其他一切顺利进行!

我建议Focus但是这不起作用,所以我们强迫它使用:

Press Key    id=userid    \\9

Tab 发送到浏览器。让它失去焦点,并使验证结束!

最终机器人文件看起来像:

Open Browser ${url} ff 
Maximize Browser Window 
Wait Until Element Is Visible id=selectedCountry 10s 
Click Element id=selectedCountry 
Select from List by value id=selectedCountry MU 
Click Element id=selectedCountry 
sleep 2s 
Focus id=userid 
Click Element id=userid 
Input Text id=userid rajaint 
Press Key id=userid \\9 
sleep 5s 
Input Password id=password rajaint1 
sleep 2s 
Click Button id=Submit1 
sleep 10s 
Capture Page Screenshot

答案 1 :(得分:2)

我遇到了同样的问题,但 按键操作 无效。 我用这个黑客代替

执行JavaScript

document.getElementById('Submit1').click()

它工作正常

答案 2 :(得分:0)

我面临类似的问题。 JavaScript非常完美。

Execute Javascript  document.querySelector('#HIRESearchTable > tbody > tr > td.searchLink > span').click();

答案 3 :(得分:0)

对于这种情况,可以使用JavaScript Executor。但是在大多数情况下,您找不到元素的 Id 。因此,我实现了一个可以与 xpath 一起使用的通用关键字。

Click Element By JavaScript Executor [Arguments] ${elementXpathLocator} ${retryScale}
    [Documentation]
    ...  Click an element by xpath using javascript executor  ...

    Wait Until Keyword Succeeds    2x     1 s    Wait Until Element Is Enabled    ${elementXpathLocator}
    Execute JavaScript  document.evaluate("${elementXpathLocator}", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).click();

答案 4 :(得分:0)

找到元素后休眠 1 秒。它对我有用。