Python& Selenium - 如何在页面上找到所有元素ID?

时间:2013-11-27 14:10:25

标签: python selenium

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

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

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

我该如何做到这一点?

2 个答案:

答案 0 :(得分:16)

以前不必这样做,但从逻辑上思考你可以使用XPath来做到这一点(可能是其他方式,XPath是我头脑中出现的第一件事。)

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

然后,您可以遍历集合,并使用每个元素的.tag_name属性来查找元素的以及get_attribute("id")方法/函数获取该元素的ID。

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

答案 1 :(得分:15)

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