xpath:elemen中的元素

2024-09-29 19:22:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个包含ListArticlesh2on this webpage内所有a元素的列表,以及python和selenium。在

我试过类似的东西

results = driver.find_element_by_xpath("//*[@id='ListArticles']/h2/a")

但它不起作用。xpath tester表示表达式的第一部分,即//*[@id='ListArticles']到达了我需要的小节,但是它没有得到ListArticles内的{}列表,因此,它也无法到达h2中的a链接。在

非常感谢任何帮助!在


Tags: id元素列表bydriverseleniumh2element
3条回答

它应该是:

"id('ListArticles')//h2/a"

您的xpath只得到了h2标记,这些标记是带有id=ListArticles的标记的直接子代,而使用//可以得到每个子代。在

而不是这个XPath

//*[@id='ListArticles']/h2/a

使用此XPath

^{pr2}$

h2元素计算额外的div父元素。在

但是请注意,h3元素下还有a元素。要获取它们,并绕过任何中间的div元素,可以使用以下XPath

//div[@id='ListArticles']//a

获取目标a下的所有子元素{},而不管中间的元素是什么。在

在这种情况下,不需要使用XPath。在我看来,你应该更喜欢CSS选择器,因为它们创建起来不那么复杂,因此更容易阅读和维护。它们在浏览器间也得到更好的支持,而且速度更快。在

本例中的CSS选择器是#ListArticles h2 > a#表示一个ID。在XPath中,空格相当于//,它表示任何后代。在XPath中,>相当于/,它只表示子代/直接后代。在

下面是一些CSS选择器引用,可以帮助您了解CSS选择器。在

CSS Selectors spec

Selenium Tips: CSS Selectors

Taming Advanced CSS Selectors

相关问题 更多 >

    热门问题