在下面的代码中,我需要为单词“ 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')]
答案 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
运算符将最后两个查询合并为一个查询。