我正在使用selenium导航到网页并将页面源存储在变量中。
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://google.com")
html1 = driver.page_source
html1现在包含http://google.com
的页面来源。
我的问题是如何返回id="id"
或name="name"
等html选择器。
编辑:
例如:
我用selenium导航到的网页有一个带有4个标签的菜单栏。每个标签都有一个id元素; id="tab1"
,id="tab2"
,依此类推。我想返回每个id值。所以我想要tab1
,tab2
,等等。
编辑#2:
另一个例子: 我网页上的主页(http://chrisarroyo.me)有几个带有ID的可点击链接。我希望能够将这些ID返回/打印到我的控制台。
所以我想返回Learn More
按钮的ID和页脚中链接的ID(facebookLnk
,githubLnk
等。)
答案 0 :(得分:2)
如果您要查找具有ID使用的Web元素列表:
elements = driver.find_elements_by_xpath("//*[@id]")
然后,您可以遍历该列表,并使用get_attribute_("id")
提取每个元素特定的ID。
对于名称,它的代码几乎相同。除了将ID更改为name并且您已设置。
答案 1 :(得分:0)
谢谢你@stewartm你评论帮助。
这最终给了我正在寻找的结果:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://chrisarroyo.me")
id_elements = driver.find_elements_by_xpath("//*[@id]")
for eachElement in id_elements:
individual_ids = eachElement.get_attribute("id")
print(individual_ids)
运行上面的^^后,输出列出了指定网页上的每个ID。
输出:
navbarNavAltMarkup
learnBtn
githubLnk
facebookLnk
linkedinLnk