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

Posted

技术标签:

【中文标题】如何使用python在selenium中通过其id名称的一部分查找元素【英文标题】:How to find element by part of its id name in selenium with python 【发布时间】:2020-04-25 11:15:53 【问题描述】:

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

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

sixth_item = driver.find_element_by_id("coption5")

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

【问题讨论】:

使用 XPATH 的“包含”方法:guru99.com/xpath-selenium.html#6 使用css:[id^="coption"] @Guy 这个问题是关于定位器 XpathCss 的,任何你想对 Xpath 隐藏问题的原因i> 和 Css 贡献者删除了这些标签? @DebanjanB 使用 xpath 和 css_selector 是解决方案,而不是问题。 @Guy 那么你觉得这个问题到底是怎么回事:) 除了 CssXpath之外,Selenium 还有其他方法吗? > 【参考方案1】:

要找到您所在的元素:

sixth_item = driver.find_element_by_id("coption5")

要仅使用 coption 定位此元素,您可以使用以下任一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^(开头的通配符):

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

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

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

参考

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

How to get selectors with dynamic part inside using Selenium with Python? Java Selenium webdriver expression finding dynamic element by ccs that starts with and ends with How to click a dynamic link with in a drupal 8 website using xpath/css selector while automating through Selenium and Python Finding elements by CSS selector with ChromeDriver (Selenium) in Python

【讨论】:

非常感谢您的回复,但在我的情况下它现在不起作用。我会继续努力! 先生你能帮我解决这个问题吗***.com/questions/59653599/… 太有用了!非常感谢!

以上是关于如何使用python在selenium中通过其id名称的一部分查找元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使用存储库接口在 Spring Data 中通过其嵌套对象的 objectId 查找集合?

在python中通过其相似性进行图像聚类

在python的List中通过其成员查找对象

如何在C ++中通过其名称获取进程句柄?

在 Rails 中通过其 belongs_to 关系查询记录

如何在sum()语句中通过其位置引用data.table的列