【问题标题】:how to insert all id with similar text in a list with selinium python如何使用 selenium python 在列表中插入所有具有相似文本的 id
【发布时间】:2016-05-24 07:11:11
【问题描述】:
<div>
 <div id="ide_1"> </div>
 <div id="ide_3"> </div>
 <div id="ide_5"> </div>
 <div id="ide_7"> </div>
</div>

我想选择子 div 的所有 id 并将它们插入到列表中,但我没有找到任何解决方案来进入父 div。我试图找到所有类似于ide_ 的 id,因为这是不会改变的修复部分。

【问题讨论】:

  • 主div标签还有其他属性吗??

标签: python selenium css-selectors


【解决方案1】:

你可以使用css_selector搜索所有包含ide_的id

find_elements_by_css_selector('[id*="ide_"]')

【讨论】:

  • 这不是 id 的内容值我试过这个例子 x = driver.find_elements_by_css_selector('[id*="_ariaId_137"]') 这是 x []
  • @sala.eddi 这是WebElements 的列表。让 id 遍历它并使用 get_attribute("id") on each element
  • find_elements_by_css_selector('[id*="ide_"]') 这种代码的平静对我来说很好,但是,如果我想在 css 类所在的特定 div 中查找类似的 id,这可能吗?
  • @sala.eddi 是的。将div 定位器添加到css_selector。例如,如果 div 具有类 some_class 您可以使用 find_elements_by_css_selector('.some_class [id*="ide_"]') 找到它
  • 好吧,我的错,我没有很好地解释这个问题,具有 css 类 some_class 的 div 是另一个 div 的容器 div,它包含我正在寻找的类似 id 'ide_'。有没有办法做到这一点
【解决方案2】:

您可以使用 find_elements_by_xpath() ,这将返回具有指定路径的元素列表。

假设您的 div 位于

<html>
 <body>
  <form>
   <table>
    <div>

那么你必须指定为

driver.find_elements _by_xpath(r'html/body/form/table/div')

如果您在主 div 元素中有任何类名或任何文本或任何内容,则可以使用任何 find_elements 方法。进一步阅读Locating Elements

希望对您有所帮助。快乐编码:)

【讨论】:

  • 这是主要问题,没有什么可以指望选择父 div 只是所有子 div 中所有 id 的相似性
  • 我尝试用 firebug 复制 xpath 位置,这就是我得到的 html/body/div[2]/div/div[3]/div[4]/div/div[1] /div[2]/div[5]/div[2]/div[1]/div/div/div[5]/div[3]/div[2]/div[1]/div/div/div [1]
猜你喜欢
  • 2012-05-28
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 2020-10-18
相关资源
最近更新 更多