Robotframework 机器人框架中的“单击”元素不工作
Robotframework 机器人框架中的“单击”元素不工作,robotframework,Robotframework,Click元素在Robot框架中不起作用,在log.html中它显示它单击了元素,但实际上在浏览器上没有 此应用程序不是Angular JS应用程序 我在另一个应用程序中尝试了相同的功能,它是Angular JS,运行良好 我的机器人代码如下: *** Settings *** Library Selenium2Library *** TestCases *** Login to Application Open Browser ${url} ff
Click元素
在Robot框架中不起作用,在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
这是什么原因呢
我陷入了自动化,因为我在登录时停止了
我无法共享应用程序url,因为它是机密的。在与Sarada进行协商后,我们发现问题出在他的应用程序上。问题是应用程序必须失去下拉菜单和用户名字段的焦点,才能通过验证,并允许robot进行更多输入
经过一些尝试和错误之后,我们找到了如何失去元素的焦点并允许验证按预期工作的方法;这反过来意味着其他一切都顺利进行
我建议使用聚焦
,但这不起作用,因此我们强制使用:
Press Key id=userid \\9
将选项卡发送到浏览器。使其失去焦点,并使验证结束
最后,Robot文件如下所示:
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
我也遇到过同样的问题,但按键技巧不起作用。 我用了这个黑客 执行JavaScript
document.getElementById('Submit1').click()
它运行良好我也遇到过类似的问题。 JavaScript工作得非常好
Execute Javascript document.querySelector('#HIRESearchTable > tbody > tr > td.searchLink > span').click();
对于这种情况,可以使用
JavaScript执行器
。但在大多数情况下,您无法找到元素的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();
找到元素后再睡1s。它适合我。给我们看你的机器人代码?更新了问题,请检查是否有任何隐式/显式等待?仅出于调试目的,将
Sleep | 2s
放在Click元素
关键字之前。我已经将Sleep | 5s
放在Click元素
之前和之后,它没有被实际单击。我不知道为什么这不起作用。所以我要把我的调试步骤扔给你它是一个按钮吗?如果是按钮,您是否尝试过单击按钮
?