【发布时间】:2018-05-22 16:03:58
【问题描述】:
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id=\"tabela\"]/tbody/tr/td[5][contains(text(),"+situacao+")]"));
在我的情况下如何使用规范化空间? “situacao”有空格
【问题讨论】:
标签: java selenium xpath normalize
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id=\"tabela\"]/tbody/tr/td[5][contains(text(),"+situacao+")]"));
在我的情况下如何使用规范化空间? “situacao”有空格
【问题讨论】:
标签: java selenium xpath normalize
要在xpath 中传递变量situacao,您可以使用以下代码行:
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id='tabela']/tbody/tr/td[5][normalize-space()='" + situacao + "']"));
【讨论】:
使用下面的代码:
//*[@id=\"tabela\"]/tbody/tr/td[5][normalize-space()='"+situacao+"')]
注意:如果您在_example_ 之类的字符串中有左右空格(将_ 视为空格),这将起作用。但是,如果您倾向于考虑空格中间和字符串,例如example example,那么它是一个完整的字符串,它将在第一个 example 文本之前和最后一个 example 文本之后删除空格。
【讨论】:
尝试在 xpath 表达式中使用单引号。这里我假设 suticao 包含字符串“Example Example”:
List <WebElement> tableSituacao
= driver.findElements(
By.xpath("//*[@id='tabela']/tbody/tr/td[5][contains(text(),'" + suticao + "')]");
【讨论】:
没有必要用 XPath 来处理这个问题。你可以.trim()这个字符串。
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id='tabela']/tbody/tr/td[5][contains(text(),'" + situacao.trim() + "')]"));
我还会在 XPath 中使用 ',而不是转义双引号 \"。我认为它更容易阅读。
【讨论】: