selenium常用的定位方法, ActionChains和TouchAchtion的区别

# 通过标签的id属性定位, 如 <div id='id'>xxxx<div/>
driver.find_element_by_id('id')
# 通过标签的name属性定位,如 <div name='name'>xxxx<div/>
driver.find_element_by_name('name')
# 通过标签的class属性定位, 如 <div class='class name'>xxxx<div/>
driver.find_element_by_class_name('class_name')
# 通过 <a> 标签的text定位, 如 <a>link_text<a/>
driver.find_element_by_link_text('link_text')
# 通过 <a> 标签的text定位,只需text的一部分, 模糊匹配 如 <a>----partial_link_text----<a/>
driver.find_element_by_partial_link_text('partial_link_text')
# 通过标签名定位, 如img标签, div标签
driver.find_elements_by_tag_name("img")
# 通过 xpath 定位 
driver.find_element_by_xpath('xpath')
# 通过css选择器定位
driver.find_element_by_css_selector('css_selector')

以上共有八种定位方法

by_id, by_name, by_class_name, 是通过标签的属性进行定位的

by_link_text, by_partial_link_text 是通过 a 标签的text进行定位的

by_tag_name 是通过标签名称(如img, div)进行定位的

 xpath如何定位同时满足两个筛选条件的元素, 可以使用contains谓语, 用and 或者or连接

//span[contains(text(),"《天下信用服务协议》") and contains(@class,"link")]

 

selenium中的ActionChains与appium中的TouchAchtion区别

 selenium中的ActionChains

初始化时传入driver
ActionChains中存储的所有行为
click(on_element=None) ——单击鼠标左键
click_and_hold(on_element=None) ——点击鼠标左键,不松开
context_click(on_element=None) ——点击鼠标右键
double_click(on_element=None) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置
perform() ——执行链中的所有动作
release(on_element=None) ——在某个元素位置松开鼠标左键

appium中的TouchAction

初始化时传入driver
TouchAction中存储的所有行为
press(el=None,x=None,y=None,pressure=None) ——短按
long_press(el=None,x=None,y=None,duration=1000) ——长按
tap(el=None,x=None,y=None,count=1) ——点击
wait(ms=0) ——等待
move_to(el=None, x=None, y=None)——移动
perform() ——执行链中的所有动作
release() ——释放

两者的区别

相同点
1、初始化和原理两者都是一样的,初始化要传入driver,把所有动作存在一个列表中,然后依次执行
2、从功能上来说两者都有点击、移动、释放、执行功能

不同点
1、selenium中的ActionChains是模拟鼠标操作,而appium中的TouchAction是模拟人的手指在屏幕上操作
2、TouchAction有长按和短按之分,且每个动作之间都会加上wait
3、复杂成度selenium中的ActionChains比TouchAction更为复杂

 

posted @ 2020-05-16 21:06  ilovetesting  阅读(535)  评论(0编辑  收藏  举报