xpath基本用法初入门

时间:2024-05-19 09:05:26

css是一门美化的语言
xpath是一门查找元素路径的语言
绝对路径用单斜杠表示,/
相对路径用双斜杠表示,//
能用相对路径,就不要用绝对路径,相对路径更加稳定,可读性更强
路径也可以右击copy (F12,ELEMENT-选择这个元素对应xml,右击,copy-xpath),不建议用,基本不准确

元素的组成:tagname,属性,text,下属标签 ===》DOM对象

一,可以通过上级标签span找下级缩小范围:
标签和标签之间的斜杠表示:父子关系还是子孙关系,单斜杠表示父子关系,双斜杠表示子孙和祖先关系,父子关系也可以用双斜杠,单斜杠只能表示父子关系
最前面的斜杠表示:相对路径或者绝对路径,
这里找到了两个,不唯一,可以进一步再通过其他标签
from selenium import webdriver
driver=webdriver.Chrome(executable_path=r"d:\chromedriver.exe",port=0)
driver.get(‘http://www.baidu.com’)
driver.find_element_by_xpath(’//span/input’)
xpath基本用法初入门
二 ,属性用@表示,例如 ,属性可以组合, []是专业名词称为谓语条件,是固定表达式
//input[@id=‘kw’]
//input[@name=‘wd’]
//input[@id=‘kw’][@name=‘wd’]
//input[@name=‘wd’][@class=‘s_ipt’][@maxlength=‘100’]
driver.find_element_by_xpath(’//input[@id=“kw”]’)
xpath基本用法初入门
三,星号表示任意元素
///input[@maxlength=‘100’]
driver.find_element_by_xpath("//
/input[@maxlength=‘100’]")
xpath基本用法初入门
///input[@=‘wd’] 在这里*星号表示任意属性

xpath基本用法初入门
四,利用text文本定位元素,**text()是函数,text()只能用户定位超文本链接的标签元素,标签是a的。
//a[text()=‘新闻’]
driver.find_element_by_xpath("//a[text()=‘新闻’]")
xpath基本用法初入门
五,利用contains定位元素,contains(参数a,参数b)是函数
contains(text(),‘新’) 意思是:文本中包含新这字
//a[contains(text(),‘新闻’)] 意思:查找a标签下文本中包含新闻这个字的元素
driver.find_element_by_xpath("//a[contains(text(),‘新闻’)] ")
xpath基本用法初入门
也可以利用contains函数 查找属性包含
//input[contains(@class,‘ipt’)]
xpath基本用法初入门
更多用法请参考我的另一篇文章,http://note.youdao.com/noteshare?id=677f7090d8a07ec73131006c5074d637