【问题标题】:How to get the xpath selectors for each element in a UL Python Selenium如何获取 UL Python Selenium 中每个元素的 xpath 选择器
【发布时间】:2019-12-23 12:09:22
【问题描述】:

我正在尝试编写一个为我编写代码的程序。想象一下,我在网站上有一个 UL 列表,我需要为列表中的每个元素抓取所有 xpath 选择器。有没有简单的方法告诉 python 抓取 UL 中所有元素的 xpath 选择器?

例如我们有这个 UL

  <ul id="test">
    <li><a href="#">Zurich</a></li>
    <li><a href="#">Geneva</a></li>
    <li><a href="#">Winterthur</a></li>
    <li><a href="#">Lausanne</a></li>
    <li><a href="#">Lucerne</a></li>
  </ul>

我在 python 中有这段代码

ul= driver.find_elements_by_id('test')

for element in ul:
    selector = **find the xpath/selector**
    text = element.text  

如何为 UL 中的每个链接抓取 xpath?

谢谢!

编辑** 这是我找到的最佳解决方案,但它使用了其他几个模块。有没有办法只用硒来做到这一点?

lxml 可以使用 getpath() 方法为您自动生成绝对 xpath。

示例(使用维基百科主页,获取徽标的 xpath 表达式):

import urllib2
from lxml import etree

data = urllib2.urlopen("https://en.wikipedia.org")
tree = etree.parse(data)
element = tree.xpath('//div[@id="p-logo"]/a')[0]
print tree.getpath(element)

【问题讨论】:

  • 你能根据你的示例 html 提供你想要的输出吗?

标签: python selenium xpath


【解决方案1】:

试试下面的 xpath:

li= driver.find_elements_by_xpath('//ul[@id="test"]/li')

for element in li:
    text = element.text  

【讨论】:

  • 你没有理解我的问题。
  • 有没有一种简单的方法来告诉 python 为 UL 中的所有元素获取 xpath 选择器?...这是我的问题... 让 python 为我抓取 XPATH 中的每个元素一个列表。这就是我想要的。
猜你喜欢
  • 2020-11-20
  • 1970-01-01
  • 2019-02-05
  • 1970-01-01
  • 2021-11-21
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 2012-07-18
相关资源
最近更新 更多