2017-02-22 4 views
3

Моего HTML-код будет какСелен XPath поиска текста с одной цитатой в подстроках

<td class="summaryValRt2 summaryValDetails">Appledore Engineering v Shaw's - Dan Day_220217103442</td> 

Я использую ниже xpath выражения нажмите операцию элемента.

//*[@class='summaryValRt2 summaryValDetails'][text()='Appledore Engineering v Shaw's - Dan Day_220217103442'] 

результат:

не может щелкнуть элемент вследствие отсутствия видимости элемента

.

Я проверил проблему из-за символа в тексте [text()='Appledore Engineering v **Shaw's** - Dan Day_220217103442'].

может ли кто-нибудь поделиться своими мыслями?

ответ

1

Попробуйте с [text()='Appledore Engineering v Shaw\'s - Dan Day_220217103442'], я использовал escape sequence в этом примере.

Или вы могли бы попробовать с Юникодом кодом для апострофа, что-то вроде [text()='Appledore Engineering v Shaw\u0027s - Dan Day_220217103442']

+0

нет ее не работает, в результате же // * [@ класс = 'summaryValRt2 summaryValDetails'] [текст() = 'Appledore Engineering v Шоу \' s - Dan Day_220217103442' ] –

+1

Это будет работать в XPath 2.0, но многие браузеры все еще используют XPath 1.0 в это время. – rutter

+0

Я использую только последнюю версию браузера. Can u help me –

1

В XPath 2.0, вы можете избежать цитат с обратным косой чертой:

text()='Appledore Engineering v Shaw\'s - Dan Day_220217103442' 

Однако, большинство основных браузеров не поддерживают XPath 2.0 в это время. Пока это не так, вы ограничены спецификацией XPath 1.0, которая не поддерживает этот escape-символ.

Поскольку строка содержит только одинарные кавычки, вы могли бы вместо того, чтобы обернуть строку в двойных кавычках:

text()="Appledore Engineering v Shaw's - Dan Day_220217103442" 

Это будет охватывать большинство случаев, но это становится сложнее, если вы ищете строку, которая включает в себя как одинарные кавычки и двойные кавычки.

Например, предположим, что вы ищете следующую строку:

single'quote double"quote 

Вы можете добиться того, что с помощью concat с чередующимися кавычки трюк:

text()=concat("single'quote", ' double"quote') 
+0

спасибо rutter, это действительно полезно –

1

Пожалуйста использовать ниже XPATH его правильно работая со мной.

//*[@class='summaryValRt2 summaryValDetails'][text()="Appledore Engineering v Shaw's - Dan Day_220217103442"] 
+0

Здравствуйте @Ramesh, ваш 'xpath' - это lacate элемент в браузере. но когда я пытаюсь выполнить этот «xpath» с java lang. это не позволяет мне написать это, из-за (двойных кавычек), которые вы использовали внутри вашего xpath. Подробнее об этом попробуйте подготовить скрипт 'xpath' с помощью' java' lang. –

+0

Да, я проверю и обновлю его. –

+0

Когда вы его обновите? потому что ваш ответ мне не помогает. –

Смежные вопросы