Как использовать апостроф ( ' ) в 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-символ