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

回眸只為那壹抹淺笑 提交于 2020-01-21 19:16:52

问题


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?


回答1:


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:

  • How to get selectors with dynamic part inside using Selenium with Python?


来源:https://stackoverflow.com/questions/59637048/how-to-find-element-by-part-of-its-id-name-in-selenium-with-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!