【问题标题】:[Python]Selenium keyword in Robot Framework to click span role="button" inside <a> tag[Python]Robot Framework中的Selenium关键字点击<a>标签内的span role="button"
【发布时间】:2021-07-17 15:02:39
【问题描述】:

我想自动化一个下载场景。

这是网页的sn-p/部分:

<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.

【问题讨论】:

    标签: html python-2.7 selenium robotframework


    【解决方案1】:

    Click Button 仅用于 &lt;button&gt; 类型的元素 - 您的目标是 &lt;span&gt;
    在 html 源代码中,您显示的类值是 "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 相反。

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 2019-04-26
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多