Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python&;Selenium-如何查找页面上的所有元素ID?_Python_Selenium - Fatal编程技术网

Python&;Selenium-如何查找页面上的所有元素ID?

Python&;Selenium-如何查找页面上的所有元素ID?,python,selenium,Python,Selenium,我知道我可以使用以下方法: find_elements_by_tag_name() find_elements_by_id() find_elements_by_css_selector() find_elements_by_xpath() 但是我想做的是简单地获取页面中存在的所有元素ID的列表,可能还有它们出现的标记类型 我怎样才能做到这一点呢?以前不必这样做,但从逻辑上考虑,您可以使用XPath来实现这一点(可能还有其他方法,XPath是我脑海中出现的第一件事) 使用xpath/*[@id

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

find_elements_by_tag_name()
find_elements_by_id()
find_elements_by_css_selector()
find_elements_by_xpath()
但是我想做的是简单地获取页面中存在的所有元素ID的列表,可能还有它们出现的标记类型


我怎样才能做到这一点呢?

以前不必这样做,但从逻辑上考虑,您可以使用XPath来实现这一点(可能还有其他方法,XPath是我脑海中出现的第一件事)

使用xpath
/*[@id]
任何具有某种id的元素)通过xpath使用
查找元素

然后可以遍历集合,并使用每个元素的
.tag\u name
属性找出它是什么类型的元素,以及
get\u属性(“id”)
方法/函数来获取该元素的id


注意:这可能会非常缓慢。毕竟,你需要很多信息。

Arran的回答很好,但如果你想提高速度,那么你可以获取页面源代码,并对其进行ID解析。不过,这需要比Arran的答案更多的编码。
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