python定位xpath节点位置的方法

  

铬右键有复制xpath地址

  

但是有些时候获取的可能不对

  

可以自己用代码验证一下

  

如果还是不行可以考虑从源码当中取出来

  

趁热打铁,使用前一篇文章中XPath节点来定位HTML页面。

  

<强> HTML文件如下(您可以将其拷贝,保存成HTML文件,跟我笔者实验):

        & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title> Storm   & lt;/head>   & lt; body>   & lt; h2 id=" h2 " name=癶name”class=癱name”比;这是一个h2标签& lt;/h2>   & lt; form>   文本域1:& lt;输入类型=拔谋尽钡拿?癴irst_name”比;   & lt; br>   文本域2:& lt;输入类型=拔谋尽钡拿?發ast_name”比;   & lt;/form>   & lt; form>   密码字段:& lt;输入类型=懊苈搿泵?懊苈搿北?   & lt;/form>   & lt; form>   单选按钮1:   & lt;输入类型=肮悴ァ眓ame="迎合广大" value=" https://www.yisu.com/zixun/nan "在男性   & lt;输入类型=肮悴ァ眓ame="迎合广大" value=" https://www.yisu.com/zixun/nv "在女性   & lt;/form>   & lt; form>   宠物:   & lt;输入类型=案囱】颉泵?傲ā痹诿?   & lt;输入类型=案囱】颉泵?傲ā痹诠?   & lt;输入类型=案囱】颉泵?傲ā痹谕米?   & lt;/form>   & lt;/body>   & lt;/html>      

<强> 1,节点

  

上面的HTML文件,& lt; html>为根节点,他有个朗的属性,他有两个子节点& lt; head>和& lt; body>。

  

<强> 2,选取节点实验

  

(1)/,从根节点选取

  

下面的代码从根节点开始选取所有的html元素(这里只有一个),打印标签的名字,就是html

        从硒进口webdriver      司机=webdriver.Chrome ()   driver.get (r 'file:///E: \ python \ test1 \ \ test0.html俊”)   el=driver.find_elements_by_xpath ('/html ')   在el避署:   打印(ele.tag_name)   driver.quit ()   之前      

运行结果

        C: \ Python36 \ python。exe E: test1/python///test9.py俊   超文本标记语言         过程完成退出代码0   之前      

(2)//,从目标节点下选取

  

下面的xpath,意思就是我要去找,找到就保存到厄尔里面,不一定需要在根目录下面找

        从硒进口webdriver      司机=webdriver.Chrome ()   driver.get (r 'file:///E: \ python \ test1 \ \ test0.html俊”)   el=driver.find_elements_by_xpath(“//头”)   在el避署:   打印(ele.tag_name)   driver.quit ()   之前      

运行结果:

        C: \ Python36 \ python。exe E: test1/python///test9.py俊   头         过程完成退出代码0   之前      

如果我换成下面的xpath,结果会如何呢?

        从硒进口webdriver      司机=webdriver.Chrome ()   driver.get (r 'file:///E: \ python \ test1 \ \ test0.html俊”)   el=driver.find_elements_by_xpath(/头)   在el避署:   打印(ele.tag_name)   driver.quit ()      之前      

从根节点选取头元素,跟节点不是头元素,所以找不到,打印为空

  

(3)。,选取当前节点;. .,选取父节点

  

下面的xpath,第一个,匹配到头部元素,然后分配找头当前节点(就)是头,头父节点(是html)

        从硒进口webdriver      司机=webdriver.Chrome ()   driver.get (r 'file:///E: \ python \ test1 \ \ test0.html俊”)   eles2=driver.find_elements_by_xpath(“//头/薄?   eles3=driver.find_elements_by_xpath(//头/?      避署的eles2:   打印(ele.tag_name)      避署的eles3:   打印(ele.tag_name)   driver.quit ()   之前      

运行结果:

        C: \ Python36 \ python。exe E: test1/python///test9.py俊   头   超文本标记语言         过程完成退出代码0   之前      

(4) @选取属性

  

下面xpath为匹配任意元素,其有个属性字符集,值为utf - 8。

        从硒进口webdriver               司机=webdriver.Chrome ()   driver.get (r 'file:///E: \ python \ test1 \ \ test0.html俊”)   eles3=driver.find_elements_by_xpath ('//* [@charset=" utf - 8 "]”)   避署的eles3:   打印(ele.tag_name)   driver.quit ()   

python定位xpath节点位置的方法