Find element by value Selenium/Python
Solution 1
The problem is with the first xpath. You are trying to locate an input while you need to get option.
Try this:
driver.find_element_by_xpath("//option[@value='T_U0']").click()
Solution 2
You can try to click/select element via displayed text. Pseudo code:
driver.find_element_by_xpath("//option[text()="Some text"]").click()
Cleyson Shingu
Updated on July 05, 2022Comments
-
Cleyson Shingu almost 2 years
I am using Selenium with Python to automaticlly extract some data from our power plants and right now I need to click on an element. The problem is that the element's
xpaths
and order change for each plant we are monitoring. The only static info is thevalue
, just like in the 3rd linevalue="T_U0
.I tried many approaches and I couldn't find a solution. I can't use index or child because the order of the parameters is changing. I tried CSS selector with no success.
Here you get some of my tries...
driver.find_element_by_xpath("//input[@value='T_U0']").click() driver.find_element_by_css_selector("input[@data-id-sys-abbreviation='388']").click()
I tried many other things but I was just desperately trying anything.
What I really need is a
find_by_value
, if there is a way of doing it please let me know, if there isn't please show me how I can do it.I need to click in some options that change order accordingly to the plant
-
Cleyson Shingu about 6 yearsIt did work! Thank you Anand, it was so simple and I couldn't see it, thank you again!