【问题标题】:I'm trying to get the "id" of an html tag, but the xpath doesnt work我正在尝试获取 html 标记的“id”,但 xpath 不起作用
【发布时间】:2019-06-18 09:27:49
【问题描述】:

我正在使用 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 row-fluid')]/div[contains(@class,'content')]/div[contains(@class,'ses')]/ul/li/@id" 是:[对象属性]。它应该是一个元素。

当我执行这段代码时:

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

感谢您的帮助

【问题讨论】:

    标签: xpath selenium-chromedriver


    【解决方案1】:

    @id 是一个属性,而不是一个元素。 XPath 没问题,但该函数只返回元素,而不是属性。我怀疑有find_attributes_by_xpath,但如果你想找到定义了@idli 元素,你可以在量词中指定:

    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。

    【讨论】:

    • 非常感谢!现在它的工作非常完美,就像我想要的一样!之前没看懂元素和属性的区别,现在好了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 2022-12-30
    相关资源
    最近更新 更多