webdriver 定位元素

定位元素方法

1. driver.find_element_by_id() 按照id查找元素

2. driver.find_element_by_partial_link_text() 模糊查询链接的文本

3. driver.find_element_by_link_text() 完全匹配链接的文本

4. driver.find_element_by_class_name() 按照元素的class属性值进行待查

5. driver.find_elements_by_tag_name() 按照标签查询元素

6. driver.find_element_by_xpath() 按照xpath路径来查询元素


xpth定位

b=webdriver.Firefox()
b.get("http://www.maiziedu.com/")

1. 绝对路径查询

e=b.find_element_by_xpath("html")    #xpth查询根节点
print(e.text)                        #获取根节点下所有的文本
e=b.find_element_by_xpath("/html/body/div[3]/div[1]/div[1]/div/div[2]/ul/li[1]")    #按照绝对路径查询元素ul下第一个li元素
print(e.get_attribute('class'))    #获取该元素下点calss属性

2. 在整个文档中查询某元素

e=b.find_element_by_xpath("//*")    #查询文档中的第1个元素
print(e.tag_name)    #获取第一个元素的tag_name
e=b.find_element_by_xpath("//li")    #查询文档中第1个元素
print(e.get_attribute('class'))    #获取第1个元素的class属性
e=b.find_element_by_xpath("//li[2]")    #查询文档中第2个li元素
print(e.get_attribute('class'))    #获取第2个元素的class属性

3.查询父元素

e=b.find_element_by_xpath("//li[2]/.")    #查询文档中第2个li元素的当前节点
print(e.tag_name)    #获取该元素点标签名
e=b.find_element_by_xpath("//li[2]/..")    #查询文档中的第2个li元素的父元素
print(e.tag_name)    #获取该元素点标签名

4. 查询包含或不包含某属性的元素

e=b.find_element_by_xpath("//div[@id]")    #查询文档中的第一个有id属性的div元素
print(e.get_attribute('id'))
e=b.find_element_by_xpath("//div[not(@id)]")    #查询文档中的第一个没有id属性的div元素
print(e.get_attribute('class'))

5. 查询包含或不包含某属性值=特定值的元素

e=b.find_element_by_xpath('//div[not(@class="head-container"])')    #查询文档中的第一个没有id属性的div元素
print(e.get_attribute('class'))

6. count函数查询存在某元素*个的父元素

e=b.find_element_by_xpath('//ul[count(li)=1]/../h5')    #有1个li元素的ul->获取该ul的父节点->获取该父节点的h5元素
print(e.text)          #获取h5元素的文本内容

教程:http://www.w3school.com.cn/xpath/xpath_nodes.asp














  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值