【问题标题】:Finding element in Python by xpath通过 xpath 在 Python 中查找元素
【发布时间】:2020-02-06 00:29:22
【问题描述】:

我正在尝试单击 xpath 为的项目:

//*[@id="single-71048602500"]/div[2]/div[1]

有更多以//*[@id="single"] 开头的元素,并且每次页面加载时数字都会改变。所以唯一具体的位是“single”和/div[2]/div[1].的组合

CSS_selector也有编号,所以没用。

选择元素的代码是什么?

我正在使用 Python 和 Selenium。

【问题讨论】:

标签: python selenium xpath partial


【解决方案1】:

在这里,我假设您要单击所有具有“single”和/div[2]/div[1] 组合的元素。

首先,尝试从所需元素的父元素中获取所有元素。现在您将获得 WebElements 列表。遍历所有元素并单击 id 以单个开头的元素。

sd = mainpage.find_elements_by_xpath('//*[@id]') #parent webelement
for i in sd:

        if str(i.get_attribute('id')).startswith("single"):

             j = i.find_element_by_xpath('//*[@id="{}"]/div[2]/div[1]'.format(i.get_attribute('id')))
             j.click()

【讨论】:

  • find_elements_by_xpath("//*[starts-with(@id, 'single')]/div[2]/div[1]") 应该会立即找到所需的元素
  • 阿德里安 W,谢谢,完美。我不知道您可以将 /div[2] 等添加到开头的末尾。 Brill,再次感谢。
【解决方案2】:

试试这个 xpath,让我知道它是怎么回事。

(//*[contains(@id,"single")]/div[2]/div[1])[index of an element ]

下面的 xpath 将帮助您找到所有包含单个 id 值的元素

//*[contains(@id,"single")]/div[2]/div[1]

【讨论】:

  • 约苏瓦 A,感谢您的帮助。完美运行。干杯
猜你喜欢
  • 2020-05-07
  • 2020-07-20
  • 2020-08-08
  • 2020-05-03
  • 2016-10-31
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 2016-03-12
相关资源
最近更新 更多