Как использовать одинарные кавычки внутри выражения xpath в Selenium? - PullRequest
1 голос
/ 07 июля 2019

Мне нужно найти на веб-сайте кнопку с именем, которое может содержать апостроф, и я не знаю, как это сделать.

a = "Ming'an Cui"
n = "55"
driver.find_element_by_xpath("//button[contains(span,'"+a+"')]/span[@class='btn-subtext' and contains(text(),"+n+")]").click()

Затем я получаю это сообщение:

InvalidSelectorException: Сообщение: данное выражение xpath "// button [содержит (span, 'Ming'an Cui')]] / span[содержит (span, 'Ming'an Cui')] "недопустимо: SyntaxError: Выражение не является допустимым выражением.

Ответы [ 2 ]

0 голосов
/ 07 июля 2019
driver.find_element_by_xpath('//button[contains(span,\"'+a+'\")]/span[@class="btn-subtext" and contains(text(),"55")]').click()#nomes

исправлено: D

0 голосов
/ 07 июля 2019

Я считаю, что вы должны использовать escape sequence character перед тем, как back slash (\) что-то вроде упомянутого ниже

driver.find_element_by_xpath("//button[contains(span,'"+"Ming\'an Cui"+"')]/span[@class='btn-subtext' and contains(text(),"+n+")]").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...