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

时间:2019-06-18 09:27:49

标签: xpath selenium-chromedriver

我正在使用硒,我想使用“ 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 [包含(@ class,'content')] / div [包含(@ class,'ses')] / ul / li / @ id“   是:[object Attr]。应该是一个元素。

当我执行此代码时:

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”,但出现错误。

谢谢您的帮助

1 个答案:

答案 0 :(得分:1)

W_modulated = tf.einsum('ijk,bi->bijk', self.W, ux) 是属性,而不是元素。 XPath可以,但是该函数仅返回元素,而不返回属性。我怀疑这里有@id,但是如果您想找到定义了find_attributes_by_xpath的{​​{1}}元素,则可以在量词中指定它:

li

然后您可以调用@id来检索元素的ID。