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)