使用selenium实现UI自动化(二)

接上一篇,本章会讲元素定位已经selenium的actions

selenium的元素定位方式有8种,但是总结起来其实只有2种,xpath和css定位,所以掌握这2种就可以了。另外xpath支持在appuim上使用css在原生的appuim控件中不能使用。现在我们来看几个xpath的例子:

表达式 结果
/provice/city[1] 选取属于provice元素的第一个city元素
/provice/city[last()] 选取属于provice元素的最后一个city元素
/provice/city[last()-1] 选取属于provice元素的倒数第二个city元素
/provice//city[position()<3] 选取所有属于provice元素的最前面的二个city元素
//title[@lang='eng'] 选取所有的city元素,且这些元素拥有lang属性值为eng

上述例子中使用了绝对路径/和相对路径//,以及属性值,此外我们还可以在定位的时候时候and 或者 or来进行多重匹配我们可以在浏览器的控制台上通过$x('表达式')的方式来先进行模拟定位,确定无误后再放入我们的定位代码中。

css表达式 结果
.intro 选择class="intro"的所有元素
#firstname 选择id="firstname"的所有元素
* 选择所有元素
p 选择所有p元素,替换成其他的h1之类的,表示选择对应的所有元素
div,p 取并集,选择所有的div和p元素
div p 选择所有div内部的p元素
div>p 选择所有父元素为div的p元素
div+p 选择紧接在div元素后面的所有p元素

上述css的表达式在浏览器的console上可以通过$('表达式')的方式进行模拟定位,可以自行在浏览器的F12中找到console,然后进行摸索参试

actions

selenium提供了2种actions,ActionChains和TouchChains,分别用来模拟PC端鼠标的单击,双击,右键,拖拽等动作以及PC或者移动端的滑动,拖拽,多点触碰等手势操作。

ActionChains的使用步骤:

  • action = ActionChains(driver)
  • action.method1
  • action.method2
  • action.perform()

写法有2种,看个人喜好,一种是一行搞定 ActionChains(driver).move_to_element(element).click(element).perform(),另外一种就如上述分步骤一样,拆分成几行代码即可。

touchChains可以自行进selenium官网查看

 

posted @ 2022-05-11 16:53  逗蚂蚁  阅读(80)  评论(0)    收藏  举报