精华内容
下载资源
问答
  • AirTest Poco定位 和启动方式

    千次阅读 2019-10-29 17:42:59
    感谢George大佬的文章 让我明白的poco的定位常用使用方式 这是大佬的公众号 好了我要我把学的都记下来防止自己忘记 没办法记性不好 难搞哦 1.app启动方式 包名方式启动 start_app("com.max.xiaoheihe") 找包名的...

    在这里插入图片描述感谢George大佬的文章 让我明白的poco的定位常用使用方式 这是大佬的公众号 好了我要我把学的都记下来防止自己忘记 没办法记性不好 难搞哦

    1.app启动方式

    包名方式启动
    	start_app("com.max.xiaoheihe")
    	找包名的方式 cmd命令先连接手机或者模拟器
    	adb shell pm list package
    
    text方式启动
    poco(text="xxxx").click()
    
    touch方式启动
    touch(app的截图)
    
    通过元素树或者录制
    poco("com.mumu.launcher:id/workspace").child("android.view.ViewGroup").child("android.view.ViewGroup").child("android.widget.TextView")[8].click()
    
    最好还是 包名方式 因为 通过包名不管你在哪个页面都能启动 
    

    2.poco常用的定位方式
    第一种就是录制的了但是录制的 实在是太长了容易出错 还是自己写把 或者把录制的改动下
    offspring方法
    在这里插入图片描述

    一级一级想下找 在找的时候要保证第一个元素是唯一的
    在这里插入图片描述
    text方式查找元素
    在这里插入图片描述

    打印 属性值 和你取到的结果是不是一致的
    在这里插入图片描述
    定位的时候可以多添加几个属性提高定位准确率
    在这里插入图片描述
    疑问
    在这里插入图片描述
    parent()查找当前元素的父级元素
    在这里插入图片描述
    查看是否一致
    在这里插入图片描述
    查看朋友圈的祖宗 也就是amq,在遍历amq的子孙节点
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    assert_exists:断言图片存在
    assert_not_exists:断言图片不存在
    感谢大佬的 公众号文章 公众号放上面了可以关注下 以上内容 有错误的勿喷 指正就好了 谢

    展开全文
  • Airtest-Poco元素定位剖析

    万次阅读 2019-09-20 13:56:06
    Airtest-Poco元素定位剖析 原创:George555 公众号:测试江湖路 如果这些内容对你有帮助,也可以打开微信扫一扫,加关注...笔者个人觉得:在poco中用到的元素定位方式,比起Selenium中的8大定位方式,简直是不能再...

    Airtest-Poco元素定位剖析

    原创: George555   公众号: 测试江湖路 

    如果这些内容对你有帮助,也可以打开微信扫一扫,加关注:

        最近有很多朋友看了我上一篇写的【poco的元素操作及常用方法整理】,对于元素定位还是有很多疑问,今天就来一场真实场景的演练。

        笔者个人觉得:在poco中用到的元素定位方式,比起Selenium中的8大定位方式,简直是不能再方便了(而且是那么的简单易上手),此篇就彻底扒开poco元素定位之谜。

    一、场景示例

        这里就用隔壁老王家族谱来进行场景演示:

        图中这种树结构,与应用界面元素中的树结构方式类似。

        下图为微信-发现页面的元素结构图:

    二、场景示例应用

        下面来对老王家族谱进行刨根问底。

        1.如果要找到王大三这个人,怎么找?

            A.直接根据王大三的名字找---->poco('王大三')

            B.找王大爷的子孙中第5个---->poco('王大爷').offspring()对此进行遍历找到王大三

            C.在王大二的兄弟中找王大三---->poco('王大二'),sibling()

            D.在王大叔的儿子中找王大三---->poco('王大叔').child('王大三')

        2.如果知道了王大三,要找王大叔这个人,怎么找?

            A.找王大三的爸爸---->poco('王大三').parent()

          B.找到王大三的爷爷-王大爷,在找王大爷的子孙中第1个儿子---->poco('王大三').parent().parent().offspring()对此进行遍历找到王大叔

        3.如果只知道王大三名字的前两个字,怎么找王大三? (text用正则匹配)

            A.poco(textMatches='^王大.')   #这样就找到所有名字前2个字是王大的,然后再逐步分析那个是王大三,如果目标节点是只有1个王大三,则结果就是王大三了

    三、真实案例应用               接下来针对微信来做些案例剖析

        1.获取朋友圈节点,拿到相关属性值:

            poco(text='朋友圈') 或

            poco(text='朋友圈',name='android:id/title') 或

            poco(text='朋友圈',type='android.widget.TextView')

        注:见如下示例代码可知,定位中各种属性可以同时使用,避免节点重复提高定位准确率

    print('===朋友圈text值:',poco(text='朋友圈').get_text())print('===朋友圈节点的name值:',poco(text='朋友圈',name='android:id/title').attr('name'))print('===朋友圈节点的pos值:',poco(text='朋友圈',type='android.widget.TextView').attr('pos'))'''输出:===朋友圈text值:朋友圈===朋友圈节点的name值:android:id/title===朋友圈节点的pos值:[0.20416666666666666, 0.1421875]'''

        AirtestIDE上ui定位识别如下图:

        2.根据朋友圈节点,去获取朋友圈左边的图标节点信息

        先看下AirtestIDE上ui定位识别如下图:-> ahw则为左边图标的节点、title为朋友圈文字的节点

        由图可知要根据朋友圈节点即name=android:id/title找到com.tencent.mm:id/ahw,则可以:

        A.找到朋友圈节点 再往上的3层父节点的兄弟节点就可以了。

        B.或者往上4层父节点的子孙节点,再遍历找到com.tencent.mm:id/ahw 就可以了。

            A. 方法代码:

    icon=poco(text="朋友圈").parent().parent().parent()icon2=icon.sibling()for i in icon:    print ('icon==',icon)for i in icon2:    print ('朋友圈图标节点name值:{},size值: {}'.format(i.attr('name'),i.attr('size')))

            输出:

    icon==name:com.tencent.mm:id/lj,size:[0.7833333333333333, 0.07890625]朋友圈图标节点name值:com.tencent.mm:id/ahw,size值: [0.059722222222222225, 0.03359375]朋友圈图标节点name值:com.tencent.mm:id/amc,size值: [0.8833333333333333, 0.07890625]朋友圈图标节点name值:com.tencent.mm:id/lj,size值: [0.7833333333333333, 0.07890625]

            最后,从上面打印出来的顺序知道了com.tencent.mm:id/ahw再第1个,这样就获取到了这个节点了:

    print ('=====',icon2[0].attr('name'))print ('=====',icon2[0].attr('size'))

            输出:

    ===== com.tencent.mm:id/ahw===== [0.059722222222222225, 0.03359375]

            B. 方法代码:

        #下来演示下从里往外一层层剥皮对比看看:

            代码:

    poco(text="朋友圈").parent()print ('朋友圈图标节点name值:{},size值: {}'.format(i.attr('name'),i.attr('size')))

            输出:

    朋友圈图标节点name值:android.widget.LinearLayout,size值: [0.6833333333333333, 0.0328125]

            代码:

    poco(text="朋友圈").parent().parent()print ('朋友圈图标节点name值:{},size值: {}'.format(i.attr('name'),i.attr('size')))

            输出:

    朋友圈图标节点name值:android.widget.LinearLayout,size值: [0.6833333333333333, 0.07890625]

            代码:

    poco(text="朋友圈").parent().parent().parent()print ('朋友圈图标节点name值:{},size值: {}'.format(i.attr('name'),i.attr('size')))

            输出:

    朋友圈图标节点name值:com.tencent.mm:id/lj,size值: [0.7833333333333333, 0.07890625]

            代码:

    poco(text="朋友圈").parent().parent().parent().parent()print ('朋友圈图标节点name值:{},size值: {}'.format(i.attr('name'),i.attr('size')))

            输出:

    朋友圈图标节点name值:com.tencent.mm:id/amc,size值: [0.8833333333333333, 0.07890625]

            经过4次处理终于获取到了com.tencent.mm:id/amc 这个节点,接下来找下这个节点的所有子孙节点:

            代码:

    icon=poco(text="朋友圈").parent().parent().parent().parent().offspring()for i in icon:    print ('朋友圈图标节点name值:{},size值: {}'.format(i.attr('name'),i.attr('size')))

            输出:

    朋友圈图标节点name值:com.tencent.mm:id/ami,size值: [0.025, 0.0140625]朋友圈图标节点name值:com.tencent.mm:id/ahw,size值: [0.059722222222222225, 0.03359375]朋友圈图标节点name值:android:id/title,size值: [0.12916666666666668, 0.0328125]朋友圈图标节点name值:android.widget.LinearLayout,size值: [0.6833333333333333, 0.07890625]朋友圈图标节点name值:android.widget.LinearLayout,size值: [0.6833333333333333, 0.0328125]朋友圈图标节点name值:com.tencent.mm:id/lj,size值: [0.7833333333333333, 0.07890625]朋友圈图标节点name值:com.tencent.mm:id/amg,size值: [0.1, 0.05625]朋友圈图标节点name值:com.tencent.mm:id/amh,size值: [0.08055555555555556, 0.0453125]

            对于这个遍历顺序,配张图:

            最后,从上面打印出来的顺序知道了com.tencent.mm:id/ahw在第2个,这样就获取到了这个节点了:

    print ('=====',icon[1].attr('name'))print ('=====',icon[1].attr('size'))

            输出:

    ===== com.tencent.mm:id/ahw===== [0.059722222222222225, 0.03359375]

            【特别注意】:对于offspring()和sibling()查询子孙节点,兄弟节点的方式,获取多个子孙节点、兄弟节点的顺序,笔者尝试后发现是没有规律的,所以只能先遍历下,找到对应节点的索引,然后再去通过这个索引值去指定对应节点。(不知道是不是官方源码中一个潜在bug ^~^)

    四、其他相关

        1.经过一-三,知道了怎么找到元素了,那找到元素后有怎么获取元素的属性值呢?

            poco(’节点名‘).attr('属性名')

        2.怎么获取元素中text的值?

            poco(’节点名‘).get_text() #当然这样用必须保证这个节点是有text属性的,否则会获取为空。

        3.child和children都是提取子节点,区别是什么?

        这个大家可以翻下源码,child是有参数name的,而children是没有参数的,这就可以区分对child是可以根据name来筛选某个子节点,对children无法筛选,结果有几个子节点就查出几个子节点。child和children都是可以提取多个子节点的,如果不去遍历的话,默认提取第一个子节点。

        最后的说明:对于poco的元素查找,基本就这么多(父子关系、兄弟关系、子孙关系),文字写起来比较多,其实核心就是树结构的查询方式,如果你了解web页面定位中xpath的定位方式,就很容易理解这个了。

        如果大家想问开头说的Selenium八大定位是什么,后续文章会针对这个做整理,请持续关注本公众号【测试江湖路】。

        

     

     

    #####欢迎大家加群交流####

    QQ:464314378

    微信群请先加群主微信,群主会拉各位小伙伴进群,注意添加备注。

     

     

     

    展开全文
  • find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_xpath() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_css_selector()

    find_element_by_id()
    find_element_by_name()
    find_element_by_class_name()
    find_element_by_xpath()
    find_element_by_link_text()
    find_element_by_partial_link_text()
    find_element_by_css_selector()


     

    展开全文
  • airtest

    2019-09-18 10:01:41
    一、Airtest的简介 Airtest是网易出品的一款...Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。 另外,Airtes...

    一、Airtest的简介

    Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。
    另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。

    二、关于自动化测试

    概念:自动化测试,就是把繁杂的人工测试用例利用自动化测试工具编写成代码,让机器代替人工自动跑用例的过程。实际上就是把以人为驱动的测试行为转化为机器执行的一种过程。
      意义:节省人力、物力、时间、硬件资源等,提升测试效率,特别对于繁琐重复的测试用例,可以使测试人员更专注于新的测试模块的建立和开发,从而提高测试覆盖率。

    Airtest有以下优点和缺点:

    在这里插入图片描述

    展开全文
  • AirTest+Selenium中xpath的定位 ** 一、Tips: 1、 如果要用AirTest中的录制功能只能定位比较简单的标签如:driver.find_element_by_id(“username”).send_keys(“user1”)。但是当标签的位置过于复杂时如:#driver....
  • Airtest入门

    2019-10-18 15:24:29
    下载地址:http://airtest.netease.com/ 首先你要有全套的Android SDK环境,其实主要是用到ADB 支持多种方式,多种机型...1:AirTest库,主要通过对GUI图片进行定位来操作实现自动化 2:POCO库,类似appuim,通过...
  • Airtest使用详解

    2020-09-28 06:44:12
    该项目分为AirtestIDE、Airtest、Poco、Testlab四个部分,基于python脚本的方式,用于web、windows程序、app自动化测试。 AirtestIDE:跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它...
  • 初识AirTest

    2021-02-10 10:06:36
    文章目录前言一、UI自动化介绍与框架对比二、AirtestProject项目简介AirtestProject是由网易游戏推出的一款自动化测试框架,项目构成如下:二、AirtestProject环境搭建二、AirtestProject框架介绍三、AirtestProject...
  • 初识Airtest

    2019-06-08 08:45:00
    转自:全面超越Appium,使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟...
  • AirtestIDE压缩包

    2019-04-30 08:54:43
    Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。   另外,Airtest也基于poco这个U控件搜索框架,这个框架也...
  • 网易Airtest简介

    千次阅读 2018-09-18 17:09:21
    Airtest简介:(目前已经开源)   项目地址:http://airtest.netease.com/  快速上手教程:http://airtest.netease.com/tutorial/Tutorial.html  IDE快速上手教程:...
  • Airtest自动化测试

    万次阅读 多人点赞 2019-10-16 14:29:28
      Airtest是网易游戏开源的一款UI自动化测试项目,目前处于公开测试阶段,该项目分为AirtestIDE、Airtest、Poco、Testlab四个部分,基于python脚本的方式,用于web、windows程序、app自动化测试。 AirtestIDE:跨...
  • Airtest Project入门

    千次阅读 2018-09-29 14:23:59
    Airtest Project简介 Airtest Project是网易出品的一款自动化解决方案,它适用于任意游戏引擎和应用的自动化测试,支持Android和Windows。它不需要依赖被测对象的源码。 在2018年3月26号的Google开发者日上,...
  • AirTest在Windows系统下获取坐标的几种方式: 1.利用IDE自带的wait方法获取坐标点 wait方法在使用后return找到的图片中心点坐标,以此可以获取到该截图位置的中心坐标,否则将返回异常raiseTargetNotFoundError ...
  • Airtest环境配置

    千次阅读 2018-12-25 09:44:45
    Airtest环境配置一、Airtest的简介二、环境的搭建三、Android sdk的环境配置四、ADB命令简介 一、Airtest的简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易...
  • AirTest使用教程

    千次阅读 2020-04-24 16:50:58
    什么是AirTestAirTest能做什么 Airtest Project诞生的初衷,源于我们对于游戏自动化测试框架的渴求。相比于普通的软件测试,手游测试由于手机机型繁多,对于性能测试、兼容性测试的需求很高,同时可能还有大量...
  • Airtest基本使用

    千次阅读 2019-06-04 15:38:54
    前段时间在博客中见到airtest的介绍,自己并实践了一番,用起来的确很方便,所以今天就来分享下。 Airtest简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队...
  • Airtest学习(一)

    千次阅读 2020-12-07 22:19:14
    Airtest的官网:http://airtest.netease.com/ AirtestIDE的使用教程文档:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html ...
  • Airtest辅助窗Poco区别

    千次阅读 2019-07-16 17:48:34
    Airtest IDE支持Airtest脚本的录制,图片识别(截图)的方式,你甚至可以先不用看它的API,通过录制来熟悉它的API。 Poco是通过元素本身的属性来定位元素,并且它同样支持录制。 Airtest辅助窗 截图:用于脚本图片...
  • Airtest调研ing

    2020-01-13 11:02:33
    Airtest调研ing 一,关于自动化测试   概念:自动化测试,就是把繁杂的人工测试用例利用自动化测试工具编写成代码,让机器代替人工自动跑用例的过程。实际上就是把以人为驱动的测试行为转化为机器执行的一种过程...
  • 引用别的.air脚本中封装好的方法的几种方式1.通过相对路径或绝对路径确定脚本位置进行引用2.设定默认项目根目录3.Airtest根目录下import调用 1.通过相对路径或绝对路径确定脚本位置进行引用 airtest.core.api的using...
  • airtest安装及使用

    2021-05-03 21:01:49
    airtest基础 1.新建airtest文件夹,点击左上角“+”号 选择【.air Airtest项目】。 手机端的USB调试要点选连接,再在airtest的设备列表里点选connect,若同时连接多台手机,则在列表里选择一台即可。 若要关闭当前...
  • Airtest学习(二)

    2020-12-27 23:15:52
    poco的元素定位 一:poco的元素定位 (1)借助IDE的poco辅助窗生成元素定位脚本 点检视器按钮(前两个都行),点元素,就能看到该元素所在的位置,点那个定位就能生成脚本(区别是第一个按钮锁住页面) ...
  • airtest常用方法

    千次阅读 2020-08-07 11:53:18
    使用方式:点击方法后,在右边设备窗口设备界面上扩选要操作的对象就可以; 如:点击屏幕中间可以使用以下两句完成: w,h=device().get_current_resolution() #获取手机分辨率 touch([0.5*w, 0.5*h]) wait() wait(v, ...
  • AirtestProject是由网易游戏推出的一款跨平台的UI自动化测试框架,主要是面向游戏的UI自动化测试,比如Unity3D、cocos2dx-\*游戏框架,也支持Android原生app、iOS app、微信小程序的UI测试。本文主要介绍如何使用...
  • 关于Airtest的使用探索

    2020-08-03 21:56:48
    Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。   另外,Airtest也基于poco这个U控件搜索框架,这个框架也...
  • 使用Airtest薅短视频的羊毛

    千次阅读 2020-03-06 07:22:38
    Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。  另外,Airtest也基于poco这个U控...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 305
精华内容 122
关键字:

airtest定位方式