10

I'm using selenium with python,now I want to locate an element by part of its id name,what can I do?

For example,now I've already located a item by id name coption5 :

sixth_item = driver.find_element_by_id("coption5")

Is there anyway I can locate this element only by using coption?

8
  • Use XPATH's "contains" method: guru99.com/xpath-selenium.html#6 Commented Jan 7, 2020 at 22:44
  • Use css: [id^="coption"] Commented Jan 8, 2020 at 2:14
  • @Guy This question is all about locators Xpath and Css, any reason why you want to hide the question from Xpath and Css contributors removing those tags? Commented Jan 8, 2020 at 6:45
  • @DebanjanB Using xpath and css_selector is the solution, not the question. Commented Jan 8, 2020 at 7:20
  • @Guy So what do you feel the question was all about :) Does Selenium have any other way other then Css and Xpath Commented Jan 8, 2020 at 7:23

1 Answer 1

27

To find the element which you have located with:

sixth_item = driver.find_element_by_id("coption5")

To locate this element only by using coption you can use can use either of the following Locator Strategies:

  • Using XPATH and starts-with():

    sixth_item = driver.find_element_by_xpath("//*[starts-with(@id, 'coption')]")
    
  • Using XPATH and contains():

    sixth_item = driver.find_element_by_xpath("//*[contains(@id, 'coption')]")
    
  • Using CSS_SELECTOR and ^ (wildcard of starts-with):

    sixth_item = driver.find_element_by_css_selector("[id^='coption']")
    
  • Using CSS_SELECTOR and * (wildcard of contains):

    sixth_item = driver.find_element_by_css_selector("[id*='coption']")
    

Reference

You can find a detailed discussion on dynamic CssSelectors in:

Sign up to request clarification or add additional context in comments.

3 Comments

Thank you so much for your reply,but in my situation it doesn't work now.I'll keep trying!
Sir can you help me with this one stackoverflow.com/questions/59653599/…
It is so useful!Thank you so much!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.