Я пытаюсь найти соответствующий текст на странице с Selenium, но я не уверен, как заставить его читать входную строку из переменной. Например:

video_title = 'Michael Jackson - Thriller'
driver.find_elements_by_xpath("//*[contains(text(), video_title)]")

Приведенный выше код не дает мне хороших результатов, так как он, вероятно, ищет литературно для "video_title", а не для строки внутри. Я пропустил стандартные кавычки arround video_title в приведенном выше коде в надежде, что Selenium будет рассматривать его как переменную, но, похоже, это не работает.

Возможно ли это сделать? С помощью Selenium или каким-то другим способом? Спасибо!

-1
Astrov 23 Янв 2021 в 18:19

1 ответ

Лучший ответ

Вам необходимо передать заголовок видео как переменную, а не как текст, как показано в приведенном ниже коде:

video_title = 'Michael Jackson - Thriller'
driver.find_elements_by_xpath("//*[contains(text(), '" + video_title + "')]")

Обратите внимание на дополнительную одинарную кавычку вокруг video_title, потому что это строка. Во время выполнения это приведет к следующему выражению XPath:

//*[contains(text(), 'Michael Jackson - Thriller')]
0
Bouke 23 Янв 2021 в 15:51