0

我正在尝试使用 Robotframework 中的 Selenium2Library 在弹出窗口上单击按钮/元素:

Click Element   name=OK

但我在 Robotframework 中收到以下错误:

ValueError: Element locator 'name=OK' did not match any elements.

我相信这是由于 ui-widget-overlay 不会消失。下面是 html 代码的片段,包含 Ok 按钮和 ui-widget-overlay:

<button type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">OK</span></button>

<div class="ui-widget-overlay" style="width: 1793px; height: 620px; z-index: 1005;"></div>

我知道我可以使用 xpath 成功单击元素,但在这种情况下 xpath 是动态的,我想使用固定值。此外,“单击按钮”关键字也不起作用。

请让我知道我该怎么做。

4

2 回答 2

0

您是否尝试过查看按钮的类属性?对我来说,这听起来可能会提供更稳定的 xpath 或 css 参考。例如//button[contains(@class, 'ui-button')]

于 2017-03-08T18:07:42.297 回答
0

您将按钮 (OK) 的文本误解为它的name属性。属性是 XML/HTML 标记的一部分,例如它应该是这样的:

<button class="some values" name"OK">

,它不在样本中。

当您通过可见文本查找特定按钮时,此 xpath 定位器将匹配它:

xpath=//button[span[@class="ui-button-text" and text()="OK"]]

表达式为“将button具有作为直接子元素a 的元素span与该类和文本匹配”

于 2017-03-09T07:37:19.297 回答