Python & Selenium - как найти все идентификаторы элементов на странице?
Я знаю, что могу использовать такие методы, как:
find_elements_by_tag_name()
find_elements_by_id()
find_elements_by_css_selector()
find_elements_by_xpath()
Но то, что я хотел бы сделать, это просто получить список всех идентификаторов элементов, существующих на странице, возможно, вместе с типом тега, в котором они встречаются.
Как я могу это сделать?
Ответы
Ответ 1
Не нужно было этого делать раньше, но логично думать об этом можно с помощью XPath для этого (может быть, другими способами, XPath - это первое, что появляется в моей голове).
Используйте find_elements_by_xpath
с помощью элемента XPath //*[@id]
( any, который имеет идентификатор какого-либо типа).
Затем вы можете выполнить итерацию через коллекцию и использовать свойство .tag_name
для каждого элемента, чтобы узнать, какой тип элемента и метод/функция get_attribute("id")
получить этот идентификатор элемента.
Примечание. Это, вероятно, будет довольно медленным. В конце концов, вы запрашиваете много информации.
Ответ 2
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