Как использовать апостроф ( ' ) в xpath при поиске элемента с помощью webdriver?

мне нужно использовать апостроф ( ' ) в моем выражении xpath, которое мне нужно использовать для поиска элементов с помощью webdriver

мне нужно использовать ниже XPath expression

//input[@text="WE'd like to hear from you"]

при использовании вышеуказанного выражения в функции find elements я заменяю двойные кавычки одинарными кавычками

driver.findelements(By.xpath("//input[@text='WE'd like to hear from you']"))

4 ответов


используйте xpath, как показано ниже:

driver.findElements(By.xpath("//input[contains(@text,\"WE'd\")]"));

надеюсь, что это помогает.


вы должны использовать двойные кавычки в качестве XPath строковый литерал-разделитель, так как XPath 1.0 не предоставляет способ избежать кавычек. В дополнение к этому вы можете избежать двойных кавычек на Java, чтобы избежать конфликта с вашим Java string delimiter, которые также используют двойные кавычки:

driver.findelements(By.xpath("//input[@text=\"WE'd like to hear from you\"]"))

использование Escape-символов не служит этой цели.. Я попробовал функцию конкатенации, и она сработала как заклинание. См. ниже xpath.

тег: li Manager менеджера инициатора рабочего процесса / li

объедините функцию и разделите строку как -

concat ('менеджер инициатора рабочего процесса',"'",'S Manager')

одиночная кавычка хранится в двойной кавычки пока другие характеры сдержаны в одиночном двойные кавычки..

Так XPath выглядит как -

/ / li[.=concat ('менеджер инициатора рабочего процесса',"'",'S Manager')]

надеюсь, что это помогает. :)


Если вышеуказанное решение не работает, используйте приведенное ниже решение, используя escape-последовательность.

xpath: / / li[.=\"Менеджер менеджера инициатора рабочего процесса\"]

здесь мы рассматриваем весь текст как строку, используя escape-символ