Xpath是一门在XML文档中查找信息的语言,Xpath可用来在XML文档中对元素和属性进行遍历,
主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档。
SeleniumWebDriver支持使用Xpath表达式来定位元素。
方法名
find_element_by_xpath()
.提供按任意属性定位
bs.find_element_by_xpath('//a[@href="http://news.baidu.com"]')
bs.find_element_by_xpath('//div[@class="title-text c-font-medium c-color-t"]') #可以带空格,用这种方式 也要确认唯一性
//标签名[@属性名='数值']
//标签名[@属性名='数值' and/or @属性名='数值'] 可以设定多个属性名,用and或者or连接
.使用部分属性值定位
属性值如果太长或网页中的元素属性动态变化,可以使用此方法,这几个函数是xpath带的,所以不能再别的方法里使用
元素属性值开头包含内容:starts-with()
元素属性值结尾包含内容:substring()
元素属性值包含内容:contains()
bs.find_element_by_xpath('//a[starts-with(@class,"title")]') 定位class属性中title开头的
#这条假设页面也一个a标签 有如下属性href=http://news.baidu.com 忽略唯一性
bs.find_element_by_xpath('//a[substring(@href,13,5)="baidu"]') 这条的意思是从13位开始(包括13位)截取5位,等于baidu的
bs.find_element_by_xpath('//a[substring(@href,13)="baidu.com"]') 这条的意思是从13位开始(包括13位)截取到末尾,等于baidu.com的
bs.find_element_by_xpath('//a[contains(@href,'baidu.com')]') 这条是查找包含'baidu.com'的意思
.提供按位置路径定位
好棒啊,如此优美的描述!简直是神才写得出来