Использование xpath, содержащего пробелы
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id=\"tabela\"]/tbody/tr/td[5][contains(text(),"+situacao+")]"));
как использовать normalize-space в моем случае? у "situacao" есть пробелы
4 ответа
Нет необходимости справляться с этим с помощью XPath. Вы можете просто .trim()
строка.
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id='tabela']/tbody/tr/td[5][contains(text(),'" + situacao.trim() + "')]"));
Я бы также использовал '
внутри XPath вместо избежания двойных кавычек \"
, Я думаю, что это облегчает чтение.
Используйте код ниже:
//*[@id=\"tabela\"]/tbody/tr/td[5][normalize-space()='"+situacao+"')]
Примечание: это будет работать, если вы оставили в правой части строки в виде строки _example_
(рассматривать _
как космос). но если вы склонны считать пространство серединой и строкой, как example example
затем его полная строка удаляет пробел перед первым примером текста и после последнего примера текста.
Попробуйте использовать одинарные кавычки в выражении xpath. Здесь я предполагаю, что suticao содержит строку "Пример примера":
List <WebElement> tableSituacao
= driver.findElements(
By.xpath("//*[@id='tabela']/tbody/tr/td[5][contains(text(),'" + suticao + "')]");
Передать переменную situacao
в пределах xpath
Вы можете использовать следующую строку кода:
List <WebElement> tableSituacao = driver.findElements(By.xpath("//*[@id='tabela']/tbody/tr/td[5][normalize-space()='" + situacao + "']"));