如何在附件中找到单词“ Pace”的动态xpath?

时间:2019-10-02 17:40:08

标签: selenium xpath

在下面的代码中,我需要为单词“ Pace”使用动态xpath,这是表中第三列的名称。

我尝试了以下方法:

+----------------------+------------------+------------------------+------------------------------+-----------------------------------+
|    Ecto 3 type       |    Elixir type   | Supports microseconds? | Supports DateTime functions? | Supports NaiveDateTime functions? |
+----------------------+------------------+------------------------+------------------------------+-----------------------------------+
| :utc_datetime_usec   | DateTime         |    YES                 |   YES                        |   YES                             |
| :utc_datetime        | DateTime         |    NO                  |   YES                        |   YES                             |
| :naive_datetime_usec | NaiveDateTime    |    YES                 |   NO                         |   YES                             |
| :naive_datetime      | NaiveDateTime    |    NO                  |   NO                         |   YES                             |
+----------------------+------------------+------------------------+------------------------------+-----------------------------------+

但是对于我的测试来说,这似乎太长了。我可以使用更短的动态xpath定位器吗?这是包含单词的代码片段:

//table[contains(@class,'data-grid-table data-grid-fixed-row-table')]//span[contains(@class,'lightning-table-cell-measure-header-value')][contains(text(),'Pace')]

1 个答案:

答案 0 :(得分:0)

问题可能出在最后,您在[][]元素中使用双//span表示法。我以前从未见过这种类型的XPath语法,而且我总是将查询分为一组[]

您可以使用以下XPath:

//th/div/div//span[contains(text(), 'Pace']

这将使您获得包含文本“ Pace”的span元素。

如果您只想修复现有的XPath语法,这也可能会起作用:

//table[contains(@class,'data-grid-table data-grid-fixed-row-table')]//span[contains(text(),'Pace') and contains(@class,'lightning-table-cell-measure-header-value')]

我已经使用and运算符将最后两个查询合并为一个查询。