I';I’我想得到;id";一个html标记,但xpath不起作用

I';I’我想得到;id";一个html标记,但xpath不起作用,xpath,selenium-chromedriver,Xpath,Selenium Chromedriver,我正在使用selenium,我想获取带有“find_elements_by_xpath”的html标记的“id”,但我遇到了以下错误: selenium.common.exceptions.InvalidSelectorException:消息:无效 选择器:xpath表达式的结果 //body[contains(@class,'de')]/div/div[contains(@class,'container-fluid') default')]/section[contains(@id,'ma

我正在使用selenium,我想获取带有“find_elements_by_xpath”的html标记的“id”,但我遇到了以下错误:

selenium.common.exceptions.InvalidSelectorException:消息:无效 选择器: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') 行“)]/div[contains(@class,'content')]/div[contains(@class,'ses')]]/ul/li/@id” is:[对象属性]。它应该是一个元素

当我执行此代码时:

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”,但我得到了错误


感谢您的帮助

@id
是一个属性,而不是元素。XPath是可以的,但函数只返回元素,而不返回属性。我怀疑是否有
find\u attributes\u by_xpath
,但是如果您想查找定义了
@id
li
元素,可以在量词中指定:

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。

非常感谢!,现在它工作得很好,就像我想要的一样!。我不明白元素和属性之间的区别,但现在一切都好了!