【问题标题】:Python & Selenium - how do I find all element IDs on a page?Python & Selenium - 如何找到页面上的所有元素 ID?
【发布时间】:2013-12-13 05:25:32
【问题描述】:

我知道我可以使用以下方法:

find_elements_by_tag_name()
find_elements_by_id()
find_elements_by_css_selector()
find_elements_by_xpath()

但我想做的只是获取页面中存在的所有元素 ID 的列表,也许还有它们出现的标记类型。

我怎样才能做到这一点?

【问题讨论】:

  • Arran 的回答很好,但是如果你想要速度,那么你可以获取页面源,并解析它的 id。不过,这将需要比 Arran 的答案更多的编码。

标签: python selenium


【解决方案1】:
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://google.com')

ids = driver.find_elements_by_xpath('//*[@id]')
for ii in ids:
    #print ii.tag_name
    print ii.get_attribute('id')    # id name as string

【讨论】:

    【解决方案2】:

    以前不必这样做,但是从逻辑上考虑,您可以使用 XPath 来执行此操作(可能是其他方式,XPath 是我脑海中出现的第一件事)。

    通过 XPath //*[@id] 使用 find_elements_by_xpath任何 元素具有某种 ID)。

    然后您可以遍历该集合,并使用每个元素的.tag_name 属性来找出它是什么元素的种类,并使用get_attribute("id") 方法/函数来获取该元素的ID .

    注意:这可能会很慢。毕竟,您需要很多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2021-06-22
      • 2021-03-08
      • 2022-07-28
      相关资源
      最近更新 更多