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
这可能是什么原因?
当我在登录时停止时,我陷入了自动化状态。
我无法共享应用程序网址,因为它是保密的。
答案 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 秒。它对我有用。