I know that I can use methods such as:
find_elements_by_tag_name()
find_elements_by_id()
find_elements_by_css_selector()
find_elements_by_xpath()
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
Not had to do this before, but thinking about it logically you could use XPath to do this (may be other ways, XPath is the first thing that appears into my head).
Use find_elements_by_xpath
using the XPath //*[@id]
(any element that has an ID of some sort).
You could then iterate through the collection, and use the .tag_name
property of each element to find out what kind of element it is and the get_attribute("id")
method/function to get that element's ID.
Note: This is probably going to be quite slow. After all, you are asking for a lot of information.