Как встроить переменную в xpath - PullRequest
1 голос
/ 07 июля 2019

Я пытаюсь встроить переменную в выражение xpath.Это очень просто, но по какой-то причине это не работает для меня.

Следующий код отлично работает, но я хочу сделать строку Feb переменной, чтобы я мог проходить через январь, мар и т. Д.

reverse_month_select = browser.find_elements_by_xpath("//div[@class='datepicker-months']/table/tbody/tr/td/span[contains(@class, 'month') and text() = 'Feb']")[0]

По какой-то причине этот кодпроисходит сбой при получении IndexError:

индекс списка вне диапазона month_select = "Jan"

reverse_month_select = browser.find_elements_by_xpath ("// div [@ class = 'datepicker-months'] / table / tbody / tr / td / span [содержит (@class,' month ') и text () = "+ month_select +"] ") [0]

1 Ответ

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

Я до сих пор уверен, что именно пошло не так, но попробуйте ввести месяцы в выражение xpath, используя f-строки, и дайте мне знать, если оно работает:

cal = ['Jan','Feb','March']  #etc.

for month in cal:
    expression = f"//div[@class='datepicker-months']/table/tbody/tr/td/span[contains(@class, 'month') and text() = '{month}']"

А затем измените ваше определение на:

reverse_month_select = browser.find_elements_by_xpath(expression)[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...