xpath
| 表达式 | 描述 |
|---|---|
| . | 选取当前节点 |
| … | 选取当前节点的父节点 |
| / | 从根节点选取 |
| // | 相对路径 |
| 选取属性 | |
| * | 匹配任何元素节点 |
1.通过id定位
driver.find_element_by_xpath(".//*[@id='su']")
2.通过class定位
driver.find_element_by_xpath(".//*[@class='g_bd']")
3.通过tag(标签)定位
driver.find_element_by_xpath(".//input[@id='kw']")
4.通过name定位
driver.find_element_by_xpath(".//input[@name='kw']")
# 下列两个表达式等价
driver.find_element_by_xpath(".//*[text()='地图']")
driver.find_element_by_link_text("地图")
# 元素不唯一时,通过 and 多属性组合定位
driver.find_element_by_xpath(".//*[text()='地图' and @class='mnav']")
# 层级定位(索引从1开始)
driver.find_element_by_xpath(".//*[@id=ul]/a[1]")
# 通过子节点定位父节点(定位到子节点后加 /.. )
driver.find_element_by_xpath(".//*[@name='tj_trnews']/..")
css定位
1.通过id定位
driver.find_element_by_css_selector("#kw")
2.通过class定位
driver.find_element_by_css_selector(".kw")
3.通过标签定位
driver.find_element_by_css_selector("input")
4.通过其他属性定位
driver.find_element_by_css_selector("[name='kw']")
driver.find_element_by_css_selector("[autocomplete='off']")
# 层级定位
driver.find_element_by_css_selector("input>span")
# 通过索引定位
driver.find_element_by_css_selector("tbody>tr:nth-child(1)")
JQuery定位
$(".kw") -> 定位css中的class
driver.get("http://192.168.121.31/login")
time.sleep(3)
jq = '''
$('input#account').val('admin');
$('[name="password"]').val("123456");
$('#keepLogin').click();
$('#submit').click()
'''
driver.excute_script(jq)
本文详细介绍了XPath和CSS选择器在网页元素定位中的应用,包括通过ID、Class、标签和属性定位元素的方法,以及如何使用层级定位和索引进行精确选择。同时,对比了XPath与CSS选择器的不同定位策略。
887

被折叠的 条评论
为什么被折叠?



