【问题标题】:Getting ID of Selenium WebElement in Python?在 Python 中获取 Selenium WebElement 的 ID?
【发布时间】:2022-12-10 09:25:24
【问题描述】:

如果我有以下 HTML <a id="id" class="class" href="href">Element Text</a>,我将如何获得返回的“id”?我目前的程序是:

print("Attribute: " + element.get_attribute('id'))
print("Property: " + element.get_property('id'))
print("Class: " + element.get_attribute('class'))

但是所有这些都返回空字符串。但是,我可以使用element.text 获取文本

编辑:这是更深入的解释

我正在寻找一个元素,但该元素的 ID 不同。但是,有一个元素链接到我想要的元素,我可以使用它的 xpath 找到它,并将它的文本与我事先知道的特定文本进行比较。该元素的 ID 是某种形式的 someID_XX。通过获取 XX 并将其附加到另一个固定字符串,然后我可以搜索我真正想要的元素。我的问题是,一旦我获得第二个元素(不是我直接想要的那个,而是可以引导我找到我想要的那个)我似乎无法获得它的 ID 属性,即使它似乎有一个在HTML。我的问题是,如何获取 id 属性?

【问题讨论】:

  • 你试过了吗:driver.find_element_by_id('id')
  • 我已经有了使用 xpath 找到的元素。现在我需要元素的 id。
  • 您使用什么选择器来定位元素?
  • xpath: //*[@id="id"].问题是实际 id 是“id_XX”,其中 XX 是一个变化的数字。我通过搜索字符串找到这个元素,然后我需要 XX 来找到另一个在其 ID 中使用 XX 的元素
  • “id”只是一个占位符,使问题更容易理解。有一个我想要的特定元素,但它具有不同的 ID,因此我无法直接搜索它。我可以搜索它的唯一方法是寻找另一个具有非常特定文本的元素。一旦找到该元素(我使用该元素的 xpath 找到它),我希望使用 get_attribute("id") 获取它的 ID,然后我可以使用它来查找我真正想要的元素。我已经更新了 OP 以更好地解释这个过程。

标签: python selenium


【解决方案1】:

对我来说正在与

element.get_attribute('id')

一开始没有用,因为我错误地选择了一个没有 id 的隐藏 javascript 元素。 但是,如果您的情况仍然存在错误,您可以尝试以下操作:

element.get_attribute('outerHTML')

获取元素的 DOM,然后解析 html 以提取 id

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 1970-01-01
    • 2017-02-02
    • 2011-11-07
    • 2015-11-20
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多