使用包含空格的 xpath
Using xpath containing whitespace
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id=\"tabela\"]/tbody/tr/td[5][contains(text(),"+situacao+")]"));
如何在我的案例中使用 normalize-space? "situacao" 有白色 spaces
要在 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_
之类的字符串中有左右 spaces(将 _
视为 space).但是,如果您倾向于考虑 space 的中间部分和 example example
之类的字符串,那么它是一个完整的字符串,它会在第一个 example 文本之前和最后一个之后删除 space 示例 文本。
尝试在您的 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 中使用 '
而不是转义双引号 \"
。我认为这样更容易阅读。
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id=\"tabela\"]/tbody/tr/td[5][contains(text(),"+situacao+")]"));
如何在我的案例中使用 normalize-space? "situacao" 有白色 spaces
要在 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_
之类的字符串中有左右 spaces(将 _
视为 space).但是,如果您倾向于考虑 space 的中间部分和 example example
之类的字符串,那么它是一个完整的字符串,它会在第一个 example 文本之前和最后一个之后删除 space 示例 文本。
尝试在您的 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 中使用 '
而不是转义双引号 \"
。我认为这样更容易阅读。