分享

使用Xpath定位元素(一)

 Orange2327 2017-11-01


1
XML路径语言:用来确定XML文档中某部分位置的语言

2Xpath用于在XML文档中通过元素和属性进行导航

3Xpath是一个W3C标准

4:对XML/Html有一定的了解

 

Xpath节点类型:

 元素、属性、文本、命名空间、指令处理、注释及文档

 

Xpath:通过路径表达式从XML文档中选取节点或节点位置

表达式

结果说明

备注

/xxx

选取根节点xxx

 

/xxx/yyy

根据绝对路径选择元素

 

//xxx

扫描整个文档,找到所有xxx元素

 

//xxx/yyy

所有父元素为xxxyyy元素

 

.

选取当前节点的父元素节点

 

..

选取父元素地址

 

//xxx[@id]

选取所有xxx元素中有id属性的元素

 

//xxx[@id=yyy]

选取所有xxx元素id属性为yyy的元素

 


 

>>>ele = b.find_element_by_xpath('/html')    #根节点html

>>>ele.text           #eletext属性

>>>'请完成以下信息\n姓名\n性别\n年龄'

查找相关元素

1) 查找第一个input

>>> ele = b.find_element_by_xpath('/html/body/form/input[1]')

>>> ele.get_attribute('type')   # get_attribute  查看元素的某某属性

'text'

>>> ele.get_attribute('name')

'username'

>>> ele.send_keys('张三')

2) 查找第二个input

>>> ele1 = b.find_element_by_xpath('/html/body/form/input[2]')

>>> ele1.get_attribute('name')

'sex'

>>> ele1.send_keys('')

3) 查找第三个input

>>> ele2 = b.find_element_by_xpath('/html/body/p/input')

>>> ele2.send_keys(29)

结果如下:

 

>>> e = b.find_element_by_xpath('//input’)    #查找到整个页面中的input

>>> e.get_attribute('name')

'username'

>>> e1 = e = b.find_element_by_xpath('//input[1]')   #查找整个页面中的第一个input

>>> e1.get_attribute('name')

'username'

>>> e2 = b.find_element_by_xpath('//input[2]')        #查找整个页面中的第二个input

>>> e2.get_attribute('name')

'sex'

>>> e3 = b.find_element_by_xpath('//input[3]')      ##查找整个页面中的第三个input

巴特,此时报错了,如下图:

 

怎么查找第三个input呢?

>>> e3 = b.find_element_by_xpath('//p/input')

>>> e3.get_attribute('name')

'age'

修改html文件如下,添加id

>>> e = b.find_element_by_xpath('//input[@id]')

>>> e.get_attribute('name')

'username'

---------------------------------------------------------

>>> e = b.find_element_by_xpath('//input[not(@id)][1]')

>>> e.get_attribute('name')

'sex'

---------------------------------------------------------

>>> e = b.find_element_by_xpath('//p/input[not(@id)][1]')

>>> e.get_attribute('name')

'age'

---------------------------------------------------------

>>> e = b.find_element_by_xpath('//p/input[@name="age"]')

>>> e.get_attribute('name')

'age'

 

使用Xpath支持的函数方法来找元素

>>> ele = b.find_element_by_xpath('//*')   #查找所有元素

// 遍历整个文档  

* 遍历找到所有元素 

[count(input)=2] 统计包含input标签有两个的节点

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多