【问题标题】:Robot Framework: How to get xpath of an element?Robot Framework:如何获取元素的 xpath?
【发布时间】:2016-09-30 00:40:09
【问题描述】:

我正在尝试检索父 (grand-grand-parent) 元素的 id。

我掌握的所有信息是 //div[@class="preset_name"] 是“全部”。知道了这一点,我需要使用任何 Robot Framework 关键字来检索“preset_3”(作为字符串)。 我该怎么做?或者如何获取“all”的完整xpath?

<table id="preset_list">
  <tbody>
    <tr id="preset_0">
      <td>
        <div class="preset_title_line">
          <div class="preset_button_group">
            <button class="preset_button">Apply</button>
          </div>
          <div class="preset_name">Factory default</div>
        </div>
        <div class="preset_sections">System, Network, Sources, EDID, Channels, Automatic File Upload, Touch screen, Output ports</div>
      </td>
    </tr>
    <tr id="preset_1">
      <td>
       ...

【问题讨论】:

  • 致 OP:请不要将 XML/HTML(或任何类型的代码)作为图像发布。而是发布文本。后者更有用,因为人们可以使用它来测试他们的 XPath。谢谢
  • 向我们展示您的尝试。这看起来是一个相对简单的问题,可以通过一个简单的 xpath 表达式来解决。

标签: html xpath frameworks robotframework


【解决方案1】:

可以过滤包含//div[@class="preset_name"] = "all"tr,然后返回对应的id属性:

//tr[.//div[@class='present_name'] = 'all']/@id

【讨论】:

    【解决方案2】:

    您的 XPath 应该是:

     Get Element Attribute  xpath=(//div[@class="preset_name"][text()='all']/../../..)@id
    

    (我从未使用过Robot,但我认为它是正确的sintax)

    【讨论】:

    • 您在“获取元素属性”之后缺少一个空格 - 在此机器人语法中,关键字和参数由两个或多个空格分隔。
    • @StriterAlfa 非常感谢!
    【解决方案3】:

    如果您使用“相对 xpath 帮助程序 chrome 扩展”,这很容易。

    https://www.linkedin.com/pulse/finding-relative-xpath-made-easy-syam-sasi?trk=prof-post

    【讨论】:

    • 不要将链接发布为答案,而是添加一些文本来解释此答案如何帮助 OP 解决当前问题。谢谢
    • 在那个链接中有很好的解释。
    猜你喜欢
    • 2021-03-27
    • 2021-06-26
    • 2017-06-07
    • 2017-02-08
    • 2021-03-27
    • 1970-01-01
    • 2015-11-19
    • 2017-02-21
    • 2020-05-17
    相关资源
    最近更新 更多