码迷,mamicode.com
首页 > 其他好文 > 详细

在xpath路径中添加变量参数

时间:2019-08-08 13:39:05      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:ima   需求   固定   @class   list   怎么   idt   xpath   根据   

需求:需要从文件中读取参数,然后添加到xpath中,根据传入的参数执行相应的操作点击,如下:

技术图片

 

 

1、先试着使用固定的路径运行一下,代码如下:

技术图片

这里的 xpath = ‘//*[@class="ant-select-dropdown-menu-item"][1]‘ , [1]代表点击的是这个class下的第1号元素,即“母婴用品”

可以执行成功,说明方法可行

 

2、下一步就是要把固定的参数[1]换成非固定参数,直接把[1]换一个值就可以了,list_li是从文件里读取的当前传入的数字,代码如下:

技术图片

执行失败,提示定位不到这个元素

本次的 xpath =( ‘//*[@class="ant-select-dropdown-menu-item"][list_li]‘  ),

仔细看了一下,[list_li]是在 ‘‘ 里面的,所以这个值好像是没传成功,python把它当一个字符串读取了

 

3、再换一种方式,试着把[list_li]写在字符串外面,代码如下:

技术图片

本次的 xpath =( ‘//*[@class="ant-select-dropdown-menu-item"]‘[list_li]  ),

执行之后还是报错,报错提示 : xpath现在是一个html文档类型,应该是一个元素类型。

技术图片

虽然不明白什么意思吧,但肯定还是错的,继续改

 

4、试着把[list_li]写在()外面,代码如下:

技术图片

本次的 xpath =( ‘//*[@class="ant-select-dropdown-menu-item"]‘)[list_li]  ,

报错:这种对象不支持索引,也就是说Xpath对象不支持索引,,

技术图片

 

5、上面的思路都是想着定位到这个css,然后再定位索引,上面的思路走不通,就换一种思路

  试着在xpath中直接新增参数,代码如下

技术图片

 本次的 xpath =(‘//*[@class="ant-select-dropdown-menu-item"][text = 1母婴用品]‘),

报错:不是一个有效的xpath表达式

技术图片

 

 6、实在不知道怎么办的时候继续百度,看到一个使用format把参数加进去的方法,试一下

技术图片

还是以前的思路,将索引当做参数,但是这个参数不是直接放在里边,是通过format添加进去的

本次的xpath:  list_xpath = ‘//*[@class="ant-select-dropdown-menu-item"][{}]‘.format(list_li)

试着执行一下,成功了!!! 

 

总结:思路没错,就是使用的方法不对,直接把参数放进去不对,就使用别的方法添加进去,具体为什么这个可以我还没有研究清楚

 

在xpath路径中添加变量参数

标签:ima   需求   固定   @class   list   怎么   idt   xpath   根据   

原文地址:https://www.cnblogs.com/caoyinshan/p/11320425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!