Использование переменной в xpath в Python Selenium

у меня возникли проблемы с выяснением, как заставить переменную работать с селеном. Этот пост, похоже, помог (переменная не работает внутри скобок), но я все еще не могу заставить его работать.

когда я использовал фактическое значение, оно работает. В этом случае Аль-Алабама. Я создал переменную state, чтобы я мог просто вызвать это в моей функции. Мне нужно пробежаться по 13 Штатам.

driver.find_element_by_xpath("//option[@value='AL-Alabama']").click()

этот использует переменную состояния и при просмотре сообщения об ошибке он показывает значение переменной как AL-Alabama. Так кажется это ссылка на правильное значение на веб-странице. Не уверен, что я упускаю или почему это не работает. Любые рекомендации будут оценены.

driver.find_element_by_xpath('//option[@value=' + state + ']').click()
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//option[@value=AL-Alabama]"}

1 ответов


одинарные кавычки вокруг значения отсутствуют с тем, как вы его закодировали. Попробуйте:

driver.find_element_by_xpath("//option[@value='" + state + "']").click()