【问题标题】:How to get the element count matching text in nth column of Span Table如何获取跨度表第n列中匹配文本的元素计数
【发布时间】:2019-04-11 10:38:34
【问题描述】:
Col1     Col2   Col3    Col4    Col5

  2     XYZ    Andy     Div2    Address2

  3     NNN    Spencer  Div1    Address3

  4     YYY    Krish    Div8    Address4

  5     ABC    Sima     Div1    Address5

我有一个像上面示例中的跨度表,我试图在第 4 列 (Col4) 中获取与文本 Div1 匹配的单元格计数。我尝试了下面的代码并得到了一个错误(无效的 xpath 定位器):

${RecordCount}= Get Matching Xpath Count //td[4][matches(text(),'Div1')]

【问题讨论】:

    标签: xpath robotframework selenium2library


    【解决方案1】:

    问题在于matches() 函数——它存在于 XPath 2.0 中,而所有浏览器仅支持 v1.0;因此错误定位器无效。

    只需将其更改为 contains() 即可:

    //td[4][contains(text(),'Div1')]
    

    【讨论】:

    • 谢谢托多。 match() 函数是您指出的问题。由于我需要文本的完全匹配,因此我将其更改为 //td[4][text()='Div1'] ,它起作用了。
    【解决方案2】:

    来自 SeleniumLibrary document 它说 Get Matching Xpath Count 关键字在 SeleniumLibrary 3.2 中已弃用。请改用获取元素计数。因此,您应该尝试改用“获取元素计数”关键字。您提到的错误意味着您的输入 xpath 错误。大概试试这个xpath=//td[text()="Div1"]

    【讨论】:

    • 嗨,Thanh le - 我只从 xpath=//td[text()="Div1"] 开始,但这让我返回了所有包含“Div1”的单元格,包括来自其他列的单元格。但我只需要从第四列获取具有匹配文本的单元格计数。
    • 那我觉得你可以添加索引号作为你的第一篇文章。可能是这样的 xpath=//td[4][text()="Div1"]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2015-01-03
    • 2013-09-20
    • 2015-02-10
    相关资源
    最近更新 更多