一、根据ID  包名可省略

  1、元素的resource id属性

  2、唯一标志该元素的值

  3、一般最优先根据它来定位

    driver.find_element_by_id('io.manong.developerdaily:id/btn_email')

    driver.find_elements_by_id('btn_email')      包名可以省略

  4、有时候并非唯一指定

二、根据class name  包名可省略

  1、class属性决定了界面元素的类型

  2、如果

    我们要查找的是某种类型的界面元素

    而且这种类型的界面元素在当前界面只有一个

    driver.find_element_by_class_name('android.widget.ImageView')

  3、唯一性少见,一般用于局部查找。利用上层元素找目标元素

三、根据ACCESSIBILITY ID  包名可省略

  1、content-desc属性是用来描述该元素的作用

  2、如果

    要查询的界面元素的content-desc属性 在当前界面中唯一

    driver.find_element_by_accessibility_id('heheh')

  3、一般开发者不愿意写

四、根据Xpath

  1、定位比较复杂的元素

  2、相对不成熟,很多时候正确的语法也无法定位到元素

五、tap 方法    坐标精准定位元素,一般不使用

  1、click方法类似,都是点击界面

  2、tap针对坐标

  3、难以用通常的方法定位元素时使用

  tap([(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)],duration)列表中最多可以放5个元祖,duration长按屏幕的时间,单位为毫秒

六、swipe 滑动

  1、driver.swipe(x1,y1,x2,y2,duration) duration长按屏幕的时间,单位为毫秒,时间太短,滑动时会有惯性

  2、直接查看,估算操作坐标

  3、先获取元素坐标,在分析操作坐标(更健壮)

  location = ele.location  左上角坐标(dict:有x,y)

  size1 = ele.size 宽、高(dict:有width、height)

七、操作不可见元素:

  1、先滑动到其可见

  2、再操作该元素

  3、获取全屏幕尺寸

  screenSize = driver.get_window_size()

  screenW = screenSize ['width']

  screenH = screenSize ['height']

八、通知栏

  1、点开通知栏

  driver.open_notifications()

  2、查看通知

  3、关闭通知栏、返回应用

    A、通过活动屏幕实现

    B、通过按下返回键

    driver.keyEvent(4) 返回键的keycode是4

Appium元素选择 滑动 通知栏的更多相关文章

  1. Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)

    滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者 ...

  2. Appium之选择/操作元素

    Appium是如何选择.操作元素的呢? appium自动化  ------  选择界面 元素 操作元素  ------- ① 点击 ② 输入字符 ③ 拖拽 ④ 获取页面元素的各种属性 根据appium ...

  3. Appium(九):Appium API(三) 滑动和拖拽、高级手势、手机操作

    1. 滑动和拖拽 我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了. 1.1 swipe滑动事件 从一个坐标位置滑 ...

  4. appium元素定位总结

    appium元素定位方法总结 使用uiautomator定位 driver.find_element_by_android_uiautomator(uia_string) 根据resourceId属性 ...

  5. appium元素识别方式实战

    github代码::  https://github.com/w550856163/App_Demo.git  tag: V1.1 Appium Inspector定位工具界面介绍:  Selecte ...

  6. OpenLayers元素选择工具

    OpenLayers的selector工具相信挺多人都没有用过,其实这个工具用处还是不少的.比如完成元素查询时,需要实现图属性联动,使用这个工具很方便.最近做项目时也使用到这个工具,使用起来确实挺方便 ...

  7. Dotfuscator自定义规则中的元素选择

    Dotfuscator是专业的.NET程序代码保护软件.是支持规则自定义的,你可以对重命名.程序控制流.字符串加密等等功能自定义规则.在进行规则自定义过程中,可以通过元素的不同选择,满足自己的程序需要 ...

  8. Python Appium 元素定位方法简单介绍

    Python  Appium  元素定位 常用的八种定位方法(与selenium通用) # id定位 driver.find_element_by_id() # name定位 driver.find_ ...

  9. 4、通过uiautomatorviewer实现appium元素定位

    熟悉selenium自动化的小伙伴应该知道WebDriver 提供了八种元素定位方法: idnameclass nametag namelink textpartial link textxpathc ...

  10. appium元素定位工具

      appium元素定位工具介绍 使用uiautomatorviewer定位工具 使用Appium Inspector定位工具 使用uiautomatorviewer定位工具 谷歌在Android S ...

随机推荐

  1. WCH沁恒 CH37系列芯片选型以及常见问题的处理(CH376/CH378)

    选型 型号 接口 功能 备注 电源 CH372 并口 USB_Device 全速 USB 设备接口,兼容 USB V2.0 3.1-3.6 4.2-5.4 CH374 SPI/并口 Host/Devi ...

  2. C/C++语言 MD5例子

    之前研究了一下在C中进行MD5加密,由于找了很久没有找到现成的库文件,所以所幸自己去写了一下.个人感觉C的便捷性没有Python好的原因就是这里. 下面是我写的一个例子. mian.cpp: 点击查看 ...

  3. java中String类型的相关知识的简单总结

    java中String类型的相关知识总结 一.常用方法: 1.构造方法: byte数组 可指定offset和length 可指定charset char数组 可指定offset和count 字符序列 ...

  4. vue多界面开发

    1. 安装 vue-cli,已有的请跳过这一步 npm install -g @vue/cli 若已安装旧版 vue-cli 则需要先卸载 vue-cli npm uninstall -g vue-c ...

  5. 深入探究Java中的对象类型变量声明操作——在声明对象时,系统究竟做了什么?

    深入探究Java中的对象类型变量声明操作--在声明对象时,系统究竟做了什么? 摘要:本文主要对Java中的对象类型变量的声明的底层原理做了探究. 目录 深入探究Java中的对象类型变量声明操作--在声 ...

  6. Flutter踩坑日记,自己挖的坑,哭着也要走出来。

    1. 系统运行缓慢,疯狂点击右上角小X,再次启动后Emulator启动黑屏,关机重启也不好使,其他 Emulator也无法使用. 执行以下步骤: 第一检查内存是否够用 啊  不够用了 那么 [解决方法 ...

  7. php上传微信素材

    private function HttpsUpdateFileServerRequest($url,$path_img){ $curl = curl_init (); if (class_exist ...

  8. spring in action day07 RabbitMq

    一:安装RabbitMq 记录下本人在win10环境下安装RabbitMQ的步骤,以作备忘. 第一步:下载并安装erlang erlang和rabbitmq对应版本说明:https://www.rab ...

  9. flutter系列之:在flutter中使用导航Navigator

    目录 简介 flutter中的Navigator Navigator的使用 总结 简介 一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个 ...

  10. 接口自动化库-apist

    前言 目前很多公司用jmeter或者RF框架来实现接口自动化,确实是可以实现,但不利于CI/CD. 为了方便后续的可拓展性.可维护性.可复用性,项目leader在技术选型的时候应当以趋势.主流的为主, ...