[英][Python]Selenium keyword in Robot Framework to click span role="button" inside <a> tag
这是网页的片段/部分:
<div id="widget-header-1" class="right-header">
<a id="Edit-icon-1" href="#" class="widget-button">
<span class="ui-icon ui-icon-pencil ui-state-default" role="button" alt="Edit" title="Edit"></span></a><a id="Email-icon-1" href="#" class="widget-button">
<span class="ui-icon ui-icon-mail-closed ui-state-default" role="button" alt="Email" title="Email"></span>
</a>
<a id="Download-icon-1" href="#" class="widget-button">
<span class="ui-icon ui-icon-arrowthickstop-1-s ui-state-default" role="button" alt="Download" title="Download">
</span>
</a>
<a href="/dashboard_widgets/1" class="widget-button">
<span class="ui-icon ui-icon-zoomin ui-state-default" role="button" alt="Zoom In" title="Zoom In">
</span>
</a>
<a href="#" class="widget-button"><span class="ui-icon ui-icon-trash ui-state-default" role="button" alt="Delete" title="Delete">
</span>
</a>
</div>
在我的机器人框架代码中,我使用了:
Click Button //span[@class="ui-icon.ui-icon-arrowthickstop-1-s.ui-state-default"]
但是当我在 RIDE 上运行它时,我得到了错误:。
Button with locator '//span[@class="ui-icon.ui-icon-arrowthickstop-1-s.ui-state-default"]' not found.
与//*span
使用相同会引发错误: The string '//*span[@class="ui-icon.ui-icon-arrowthickstop-1-s.ui-state-default"]' is not a valid XPath expression.
我也尝试过使用以下 xpath,但没有运气:
//*[@id="Download-icon-1"]/span
Button with locator '//*[@id="Download-icon-1"]/span' not found.
//a[@class="ui-icon.ui-icon-arrowthickstop-1-s.ui-state-default"]/span
给出错误: Button with locator '//a[@class="ui-icon.ui-icon-arrowthickstop-1-s.ui-state-default"]/span' not found.
即使我使用Click Link
,我也会看到一个错误: Link with locator '//a[@class="ui-icon.ui-icon-arrowthickstop-1-s.ui-state-default"]' not found.
Click Button
仅用于<button>
类型的元素 - 您的目标是<span>
。
在 html 源代码中,您已显示 class 值为"ui-icon ui-icon-arrowthickstop-1-s ui-state-default"
,但您已用点更改了每个空格字符 - 这不起作用。
//*span
确实是无效的 xpath,因此错误 - 星号本身就是节点名称(“任何类型”),它不用作(通配符?)前缀。
用这个改变它:
Click Element //span[@class="ui-icon ui-icon-arrowthickstop-1-s ui-state-default"]
, 或者:
Click Element //*[@id="Download-icon-1"]/span
,只要这些类/id 值不是在重新加载时随机生成的,这两个调用应该可以工作。
总的来说, Click Element
不关心目标元素的类型——它只是点击,与Click Button
相反。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.