Skip to content
Advertisement

How to find element by part of its id name in selenium with python

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?

Advertisement

Answer

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:

Advertisement