如何使用python在selenium中通过其id名称的一部分查找元素

问题描述

我在 python 中使用 selenium,现在我想通过它的 id 名称的一部分来定位一个元素,我该怎么办?

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

例如,现在我已经通过 id 名称 coption5 找到了一个项目:

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

sixth_item = driver.find_element_by_id("coption5")

有没有我只能使用 coption 来定位这个元素?

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


解决方案

找到你找到的元素:

sixth_item = driver.find_element_by_id("coption5")

要仅使用 coption 定位此元素,您可以使用以下任一 定位器策略:

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

  • 使用 XPATHstarts-with():

sixth_item = driver.find_element_by_xpath("//*[starts-with(@id, 'coption')]")

  • 使用 XPATHcontains():

    sixth_item = driver.find_element_by_xpath("//*[contains(@id, 'coption')]")
    

  • 使用 CSS_SELECTOR^(开头的通配符):

  • Using CSS_SELECTOR and ^ (wildcard of starts-with):

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

  • 使用 CSS_SELECTOR*(包含通配符):

  • Using CSS_SELECTOR and * (wildcard of contains):

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

  • 您可以在以下位置找到关于动态 CssSelectors 的详细讨论:

    You can find a detailed discussion on dynamic CssSelectors in:

    • 如何使用 Selenium 和 Python 获取内部具有动态部分的选择器?
    • JavaSelenium webdriver 表达式通过 ccs 查找以
    • 开头和结尾的动态元素
    • 如何在通过 Selenium 和 Python 实现自动化的同时使用 xpath/css 选择器在 drupal 8 网站中单击动态链接
    • 通过 CSS 选择器查找元素在 Python 中使用 ChromeDriver (Selenium)

    相关文章