У меня возникли проблемы с поиском способа получения переменной для работы Selenium. Кажется, это сообщение помогло (Variable not working inside parenthesis), но я все еще не могу заставить его работать.Использование переменной в 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]"}
Почему бы не использовать Select? –
Я отметил сообщение @EGHM как ответ. Но для тех, кто может использовать эту информацию, я обнаружил, что Select также действительно работает. Я использовал Select (driver.find_element_by_class_name («c3»)). Select_by_visible_text (состояние). Не уверен, что я должен был поставить код в комментарии. – shavar
@shavar, идущий с абстракцией Select, действительно намного более простой способ подойти к проблеме. – alecxe