首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正在尝试获取html标记的"id“,但是xpath不起作用

我正在尝试获取html标记的"id“,但是xpath不起作用
EN

Stack Overflow用户
提问于 2019-06-18 09:27:49
回答 1查看 32关注 0票数 0

我正在使用selenium,我希望获得带有"find_elements_by_xpath“的html标记的"id”,但我得到了以下错误:

selenium.common.exceptions.InvalidSelectorException:消息:无效选择器: xpath表达式“// Attr包含(@class,‘de’)/div/div(@class,‘容器-流体默认值’)/sectioncontains(@id,'mainContent')/divcontains(@class,'row-fluid')/divcontains(@id,'contentContainer行-流体‘)/divcontains(@class,'content')/divcontains(@class,’se‘)/ul/li/@id”的结果是: object Attr。它应该是一个元素。

当我执行此代码时:

代码语言:javascript
复制
browser.find_elements_by_xpath("//body[contains(@class,'de')]/div/div[contains(@class,'container-fluid    default')]/section[contains(@id,'mainContent')]/div[contains(@class,'row-fluid')]/div[contains(@id,'contentContainer row-fluid')]/div[contains(@class,'content')]/div[contains(@class,'ses')]/ul/li/@id")

虽然没有"/@id“的相同代码工作得很好,但我只有"li”标记中的文本,这不是我想要的。

根据错误,问题来自Xpath。

我原以为这段代码会返回"li“html标记中的所有"id”,但我得到了错误。

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 09:41:37

@id是一个属性,而不是一个元素。XPath是OK的,但是函数只返回元素,而不是属性。我怀疑是否存在find_attributes_by_xpath,但是如果您想找到定义了@idli元素,可以在量词中指定:

代码语言:javascript
复制
browser.find_elements_by_xpath("//body[contains(@class,'de')]
                                /div/div[contains(@class,'container-fluid default')]
                                /section[contains(@id,'mainContent')]
                                /div[contains(@class,'row-fluid')]
                                /div[contains(@id,'contentContainer row-fluid')]
                                /div[contains(@class,'content')]
                                /div[contains(@class,'ses')]/ul/li[@id]")
                                                                  ~~~~~

然后,可以调用element.get_attribute('id')来检索元素的id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56645904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档