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


# 通过标签的id属性定位, 如 

以上共有八种定位方法

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更为复杂