Найти элемент по значению Selenium / Python

Я использую Selenium с Python для автоматического извлечения некоторых данных с наших электростанций, и прямо сейчас мне нужно щелкнуть элемент. Проблема в том, что xpaths элемента и изменение порядка для каждого завода, который мы отслеживаем. Единственная статическая информация - это value, как и в третьей строке value = "T_U0.

Я перепробовал много подходов и не смог найти решения. Я не могу использовать index или child, потому что порядок параметров меняется. Я пробовал селектор CSS безуспешно.

Вот вам несколько моих попыток ...

driver.find_element_by_xpath("//input[@value='T_U0']").click()
driver.find_element_by_css_selector("input[@data-id-sys-abbreviation='388']").click()

Я пробовал много других вещей, но просто отчаянно пробовал что-нибудь.

Что мне действительно нужно, так это find_by_value, если есть способ сделать это, пожалуйста, дайте мне знать, если нет, пожалуйста, покажите мне, как я могу это сделать.

Мне нужно щелкнуть некоторые параметры, которые меняют порядок в соответствии с растением

Пожалуйста, не размещайте изображения своего кода. просто скопируйте и вставьте его и используйте кнопку формата кода.

Jacobr365 02.05.2018 15:54

@ Jacobr365 могу ли я скопировать HTML из Chrome? bc Я пробовал и мог копировать только одну строку за раз, и все испортилось

Cleyson Shingu 02.05.2018 15:57

Да, ты можешь. в окне проверки выберите вкладку элементов, затем щелкните блок и щелкните правой кнопкой мыши копию.

Jacobr365 02.05.2018 15:59
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
10
4
15 799
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема с первым xpath. Вы пытаетесь найти вход, пока вам нужна опция.

Попробуй это:

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

Это сработало! Спасибо, Ананд, это было так просто, и я не мог этого увидеть, еще раз спасибо!

Cleyson Shingu 02.05.2018 16:15

Вы можете попробовать щелкнуть / выбрать элемент с помощью отображаемого текста. Псевдокод:

driver.find_element_by_xpath("//option[text() = "Some text"]").click()

Другие вопросы по теме