【问题标题】:xpath to locate a button whose id is dynamic in Robot FrameWorkxpath 在 Robot FrameWork 中定位一个 id 是动态的按钮
【发布时间】:2014-12-29 21:53:35
【问题描述】:

我正在使用 RobotFramework 进行自动化测试,我在点击一个 id 本质上是动态的按钮时遇到问题,点击它时会出现一个“+”符号我会弹出一个窗口。

<div id="button-1571" class="x-btn x-box-item x-toolbar-item x-btn-default-toolbar-small x-icon x-btn-icon x-btn-default-toolbar-small-icon" style="border-width: 1px; left: 373px; margin: 0px; top: 6px;">

    <em id="button-1571-btnWrap">
        <button id="button-1571-btnEl" class="x-btn-center" autocomplete="off" role="button" hidefocus="true" type="button" style="height: 16px;">
            <span id="button-1571-btnInnerEl" class="x-btn-inner" style="margin: -1px 0px;"></span>
            <span id="button-1571-btnIconEl" class="x-btn-icon icon-plus"></span>
        </button>
    </em>

</div>

下面是我用来点击按钮的代码

点击按钮xpath=//div[@id='button-1571']/descendant::button[contains(@class, 'x-btn-center')]/span[contains(@class,'x-btn-icon icon-plus')]

但它不起作用,请任何人建议如何解决这个问题

【问题讨论】:

  • 我尝试只提供 id 也没有成功,出现错误,如找不到匹配项

标签: xpath robotframework


【解决方案1】:

我只能测试 XPath,但是用

//div[@id='button-1571']/descendant::button[contains(@class, 'x-btn-center')]/  
                         span[contains(@class,'x-btn-icon icon-plus')]

不是button被选中,而是span

<span id="button-1571-btnIconEl" class="x-btn-icon icon-plus" />

将 XPath 更改为时

//div[@id='button-1571']/descendant::button[contains(@class, 'x-btn-center')]/  
                         span[contains(@class,'x-btn-icon icon-plus')]/..

或者,就像第二种表示法

//div[@id='button-1571']/descendant::button[contains(@class, 'x-btn-center')]/
                     span[contains(@class,'x-btn-icon icon-plus')]/parent::button

它是这个span的父button,上面XPath的结果:

<button id="button-1571-btnEl" class="x-btn-center" autocomplete="off" 
        role="button" hidefocus="true" type="button" style="height: 16px;">
  <span id="button-1571-btnInnerEl" class="x-btn-inner" style="margin: -1px 0px;" />
  <span id="button-1571-btnIconEl" class="x-btn-icon icon-plus" />
</button>

【讨论】:

  • 感谢 matthias_h,它很有帮助 //button[contains(@class, 'x-btn-center')]/span[contains(@class,'x-btn-icon icon-plus' )]/parent::button 使用上面的代码我可以点击那个按钮。
猜你喜欢
  • 2021-03-27
  • 1970-01-01
  • 2015-02-25
  • 2017-02-21
  • 1970-01-01
  • 2019-05-06
  • 2010-11-14
  • 2015-09-12
  • 2015-11-19
相关资源
最近更新 更多