selenium元素定位检查唯一性

自动化测试的重点就是定位元素,然而定位元素没办法一步一步运行调试检查,每次都需要从代码的开始运行,检查起来效率极低。

一直想找一个能检查唯一性工具或者方法。百度发现一篇文章 https://blog.csdn.net/ouyanggengcheng/article/details/77198186

于是按照文章检查了一遍,此方法还是可行的。我直接借鉴一下并且扩展一部分知识点。

一、xpath

在Console中输入$x(),括号里面填写xpath的locator即可。

例如:

(1)$x("//input[@id='kw']")

(2)$x("//form[@id='form']/span[1]/input")

 当匹配多个时,集合会显示多个,这时候说明定位不是唯一,需要重新找到唯一定位才能在脚本中使用

二、CSS

在Console中输入$$(),括号里面填写css的locator即可。

例如:

(1)$$("#kw")

(2)$$("form input:nth-child(2)")

 当匹配多个时,集合会显示多个,这时候说明定位不是唯一,需要重新找到唯一定位才能在脚本中使用

 三、CSS扩展

在Console中输入document.qurySelector(),括号里面填写css的定位即可

例如:

  1.document.querySelector()       #定位单个元素 

  2.document.querySelectorAll()    #定位多个元素数组并定位第几个

还可以通过JS来控制元素,点击和输入

例如:

  1)document.querySelectorAll("input")[0].value='selenium'     #输入

   2)document.querySelectorAll("input")[0].click()       #点击

 既然能够控制JS那也可以完全复制到代码里进行使用,只需要在代码前加入selenium操作JS的方法

例如:

  dr.execute_script("document.querySelectorAll("input")[0].value='selenium' ")        #dr代表定义的浏览器驱动

猜你喜欢

转载自www.cnblogs.com/hy546880109/p/12096075.html