关键字“点击元素”并不总是正常

时间:2012-12-07 11:16:56

标签: selenium-rc robotframework

我遇到问题,关键字“点击元素”并不总是正确的。

例如,我想转到网站上的链接。

链接的xpath是:

${xpathIMButton}                xpath=//a/span[contains(text(),"${exprIM}")]
${exprIM}                       Infrastructure Management

点击链接鼠标悬停我使用以下内容:

Wait Until Page Contains Element            ${xpathIMButton}
Mouse Over                                  ${xpathIMButton}
Click Element                               ${xpathIMButton}    don't wait

这很简单,但我在日志上看到的却令人困惑:

Logs

按钮的HTML源代码截图:

html-code for button

因此,机器人找到链接(等待页面包含元素和鼠标悬停)是正常的,但是单击元素失败。在屏幕截图中我可以看到,按钮实际存在。那么问题是什么?为什么我会收到那些令人困惑的错误?

我正在使用: RFW 2.7.5 SeleniumLibrary 2.8.1 Firefox 12

4 个答案:

答案 0 :(得分:0)

试试这个:

Wait Until Page Contains Element            ${xpathIMButton}
Mouse Over                                  ${xpathIMButton}
Click Element                               ${xpathIMButton}    don't wait

答案 1 :(得分:0)

当我升级到Selenium 2.35, SeleniumLibrary 2.9.1 和Selenium2Library 1.2时,

Click Element开始失败了。我的浏览器是Firefox 22. Click Element按下了“保存”按钮。相同的代码工作了2次,第三次说它工作但确认页面从未出现过。我在Focus

之前添加了Click Element关键字,从而解决了我的问题
Focus ${saveRule}

Click Element ${saveRule}

现在代码工作了三次。希望这会有所帮助。

答案 2 :(得分:0)

提供答案可能有点迟,但我确实遇到了这个问题。我所做的是为页面提供一点等待时间来完全加载,然后成功找到了我的按钮。

答案 3 :(得分:0)

似乎您的鼠标悬停可能会导致此问题。鼠标悬停可能导致元素隐藏在DOM中。

但这是6年前的Selenium 1 Library。现在,我们在ROBOT Framework中使用Selenium2Library,因此,如果您尝试或已经尝试过,请告诉我们。