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

  • 相关阅读:
    c#报错信息 显示详细行号
    分析器错误消息: “webgroup.admin.index”不扩展类“System.Web.UI.Page”,因此此处不允许
    ASP.NET下AJAX.AJAXMETHOD使用方法,微软ajax 异步 同步的修改方法
    Jquery实际应用,判断radio,selelct,checkbox是否选中及选中的值,jquery如果获取多个重复name的input的值
    utf8编码的mysql数据库 按照 中文来对 名称进行排序
    MVC新手教程二:Action使用非默认视图,强类型和强类型视图
    gcc 编译多个源文件
    嵌入式学习路径
    C语言基础知识:printf的输出格式
    C语言的数据类型
  • 原文地址:https://www.cnblogs.com/yaoqingzhuan/p/12902176.html
Copyright © 2020-2023  润新知