在Selenium中使用concat()XPath并检索文本

时间:2018-04-22 18:08:50

标签: html selenium xpath

我使用众多XPath内置函数之一(concat)将页面上的多个元素连接成一个字符串。

我想在Selenium中使用此字符串,但在使用XPath时出现错误。这是设置:

HTML

<html>
<body>

<table>
  <thead>
    <th>Thing One</th>
    <th>Thing Two</th>
  </thead>
  <tr>
    <td>One</td>
    <td>Two</td>
  </tr> 
</table>

</body>
</html>

的XPath
concat(//table//tr[1]/td[1], //table//tr[1]/td[2])

XPath结果(有效)

“ONETWO”

在Selenium消费:

string xpath = "concat(//table//tr[1]/td[1], //table//tr[1]/td[2])"
OpenQA.Selenium.By MyBy = OpenQA.Selenium.By.XPath(xpath);
IWebElement element = Engine.WebDriver.FindElement(MyBy);
string text = element.Text;

第三行引发异常:

“OpenQA.Selenium.InvalidSelectorException:'无法找到具有xpath表达式concat的元素(// table // tr [1] / td [1],// table // tr [1] / td [2])因为以下错误: 错误:无法将值转换为指定类型“”

我希望能够在Selenium中使用此XPath的结果。

*更新:

使用案例
我正在构建一个实用程序,它可以获取表格单元格中的值(跨列或行)。我需要在每个单元格上运行contains()或startsWith()分析。我需要获取所有值的字符串列表并以编程方式运行以查找匹配的索引,而不是构建List并将每个元素转换为Text(这需要很长时间)。知道匹配的索引后,我就可以只生成匹配的IWebElements。

0 个答案:

没有答案