в селене, как использовать строковую переменную в xpath - PullRequest
0 голосов
/ 13 октября 2019

Как передать переменную в мой xpath и использовать ее? Или, пожалуйста, посоветуйте, если есть лучший способ сделать это. Затем я выполню условие ЕСЛИ, если на моей странице будет указано соответствующее имя отчета.

enter image description here

here is a pseudo code: 
unique_report_name = ("rep" + str(randint(100, 200)))
create report...
search created report...
result = driver.find_elements_by_xpath("//*[contains(text(),'Report Name :"unique_report_name"')]")  
  if result is displayed: 
    do something...

1 Ответ

2 голосов
/ 13 октября 2019

В размещенном вами HTML-коде я не вижу кавычек в Report Name : rep101, поэтому эти кавычки могут не понадобиться. Основываясь на HTML, вот как я бы написал XPath:

driver.find_elements_by_xpath("//h1[contains(text(), 'Report Name : " + unique_report_name + "')]")

Однако, если rep101 на самом деле окружен кавычками, вам потребуется использовать escape-символы в Python для этого. Вот как я бы провел рефакторинг вашего XPath, если в тексте есть кавычки:

result = driver.find_elements_by_xpath("//*[contains(text(),'Report Name :\"unique_report_name\"')]")  

Символ \ будет экранировать ваши " символы в XPath, поэтому ваша строка не будет прервана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...