使用包含空格的xpath

时间:2017-12-08 11:50:29

标签: java selenium xpath normalize

List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id=\"tabela\"]/tbody/tr/td[5][contains(text(),"+situacao+")]"));

如何在我的情况下使用normalize-space? &#34; situacao&#34;有空格

4 个答案:

答案 0 :(得分:0)

要在situacao中传递变量xpath,您可以使用以下代码行:

List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id='tabela']/tbody/tr/td[5][normalize-space()='" + situacao + "']"));

答案 1 :(得分:0)

使用以下代码:

//*[@id=\"tabela\"]/tbody/tr/td[5][normalize-space()='"+situacao+"')]

注意:如果您在_example_之类的字符串中留有右侧空格(将_视为空格),则此方法有效。但是如果你倾向于考虑空间中间和字符串如example example那么它是一个完整的字符串,它会在第一个示例文本之前和最后一个示例文本之后删除空格。 / p>

答案 2 :(得分:0)

尝试在xpath表达式中使用单引号。在这里我假设suticao包含字符串“Example Example”:

List <WebElement> tableSituacao 
= driver.findElements(
      By.xpath("//*[@id='tabela']/tbody/tr/td[5][contains(text(),'" + suticao + "')]");

答案 3 :(得分:0)

没有必要使用XPath来处理这个问题。您只需.trim()字符串。

List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id='tabela']/tbody/tr/td[5][contains(text(),'" + situacao.trim() + "')]"));

我也会在XPath中使用'而不是转义双引号\"。我认为它更容易阅读。