2:Xpath用于在XML文档中通过元素和属性进行导航 3:Xpath是一个W3C标准 4:对XML/Html有一定的了解
Xpath节点类型: 元素、属性、文本、命名空间、指令处理、注释及文档
Xpath:通过路径表达式从XML文档中选取节点或节点位置
>>>ele = b.find_element_by_xpath('/html') #根节点html >>>ele.text #ele的text属性 >>>'请完成以下信息\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标签有两个的节点
|
|
来自: Orange2327 > 《Selenium Python》