zoukankan      html  css  js  c++  java
  • 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更为复杂

  • 相关阅读:
    利用cookie实现iframe刷新时停留在当前页面
    css定位学习经验记录
    用div加css做表格去掉外围边框
    利用css中的background-position定位图片
    css3实现圆形逐渐减少动画
    The Best Path
    3998
    YAPTCHA(hdu2973)
    1556 计算
    1808: 地铁
  • 原文地址:https://www.cnblogs.com/yaoqingzhuan/p/12902176.html
Copyright © 2011-2022 走看看