IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> UI自动化 Appium常用的方法汇总(java版) -> 正文阅读

[开发测试]UI自动化 Appium常用的方法汇总(java版)

作者:recommend-item-box type_blog clearfix

Appium

常用接口

定位一个元素

  • 通过id定位

    driver.find_element_by_id()
    
  • 通过className

    driver.find_element_class_name()
    
  • 通过xpath

    driver.find_element_by_xpath()
    

定位一组元素

  • 通过id定位

    driver.find_elements_by_id()
    
  • 通过className

    driver.find_elements_class_name()
    
  • 通过xpath

    driver.find_elements_by_xpath()
    

等待

  • 隐式等待

    所有的find操作都会等待

    driver.implicitly_wait(10) # 10秒
    
  • 显示等待

    针对当前绑定的用户的等待,在5s内,每0.5s调用一次查找元素

    wait = WebDriverWait(driver, 5) # 5s
    button = wait.until(lambda xx.find_element_by_xpath(""))
    
对比
  • 作用域

    显示等待单个元素,隐式等待全局元素

  • 方法

    显示等待在WebDriverWait类中,而隐式等待则直接通过driver实例化对象调用

  • sleep

    固定写死时间,不推荐

  • 报错

    显示等待未找到报错TimeOutException,隐式等待报错NoSuchElementException

元素操作

  • 点击

    element.click()
    
  • 清空文本框元素

    element.clear()
    
  • 输入内容

    element.send_keys()
    
  • 获取文本内容

    element.text()
    
  • 位置&大小

    element.location #{'x':12, 'y': 12}
    element.size # {'height':192, 'width': 192}
    
  • 获取元素属性值

    key=“text” 返回text属性值

    key="name"返回content-desc/text属性值

    key="className"返回class属性,只有API>=18支持

    key="resourceId"返回resource-id属性值,只有API>=18支持

    element.get_attribute("key")
    

滑动与拖拽事件

  • swipe滑动事件

    有距离误差,时间越短惯性越小

    driver.swipe(start_x, start_y, end_x, end_y, duration) #持续时间 默认为0 ms
    
  • scroll滑动

    从一个元素滑动到另一个元素,直到页面自动停止,有惯性

    driver.scroll(element1, element2)
    
  • drag_and_drop拖拽事件

    从一个元素滑动到另一个元素,第二个元素代替第一个元素原本屏幕上的位置,没有惯性

    driver.drag_and_drop(element1, element2)
    

高级手势TouchAction

轻敲

要么传element,要么传X,Y坐标,count是执行次数,单击(1),双击(2)

TouchAction(driver).tap(element=None, x=None, y=None, count=1).perform() 

按下和抬起

  • 按下

    pressure是ios的强制按下

    TouchAction(driver)
    .press(el=None, x=None, y=None, pressure=float)
    .wait(2000)
    .perform() 
    
    
  • 抬起

    TouchAction(driver)
    .release()
    .perform() 
    
    
  • 长按

    TouchAction(driver)
    .long_press(el=None, x=None, y=None, duration=1000)
    .perform() 
    
    

长按

TouchAction(driver)
.move_to(el=None, x=None, y=None)
.perform() 

获取手机分辨率

driver.get_window_size() #{'height':2560, 'width':1440}

截图

dirver.get_screenshot_as_file("fileName.png")

获取&设置手机网络

  • 获取网络

    driver.network_connection
    
    
  • 设置网络

    valueDataWIFIAirplane Mode
    0000
    1001
    2010
    4100
    6110
    driver.set_network_connection()
    
    

    按键操作

KEYCODE_UNKNOWN=0;KEYCODE_DPAD_CENTER=23;KEYCODE_R=46;KEYCODE_MINUS=69;
KEYCODE_SOFT_LEFT=1;KEYCODE_VOLUME_UP=24;KEYCODE_S=47;KEYCODE_EQUALS=70;
KEYCODE_SOFT_RIGHT=2;KEYCODE_VOLUME_DOWN=25;KEYCODE_T=48;KEYCODE_LEFT_BRACKET=71;
KEYCODE_HOME=3;KEYCODE_POWER=26;KEYCODE_U=49;KEYCODE_RIGHT_BRACKET=72;
KEYCODE_BACK=4;KEYCODE_CAMERA=27;KEYCODE_V=50;KEYCODE_BACKSLASH=73;
KEYCODE_CALL=5;KEYCODE_CLEAR=28;KEYCODE_W=51;KEYCODE_SEMICOLON=74;
KEYCODE_ENDCALL=6;KEYCODE_A=29;KEYCODE_X=52;KEYCODE_APOSTROPHE=75;
KEYCODE_0=7;KEYCODE_B=30;KEYCODE_Y=53;KEYCODE_SLASH=76;
KEYCODE_1=8;KEYCODE_C=31;KEYCODE_Z=54;KEYCODE_AT=77;
KEYCODE_2=9;KEYCODE_D=32;KEYCODE_COMMA=55;KEYCODE_NUM=78;
KEYCODE_3=10;KEYCODE_E=33;KEYCODE_PERIOD=56;KEYCODE_HEADSETHOOK=79;
KEYCODE_4=11;KEYCODE_F=34;KEYCODE_ALT_LEFT=57;KEYCODE_FOCUS=80;//Camerafocus
KEYCODE_5=12;KEYCODE_G=35;KEYCODE_ALT_RIGHT=58;KEYCODE_PLUS=81;
KEYCODE_6=13;KEYCODE_H=36;KEYCODE_SHIFT_LEFT=59;KEYCODE_MENU=82;
KEYCODE_7=14;KEYCODE_I=37;KEYCODE_SHIFT_RIGHT=60;KEYCODE_NOTIFICATION=83;
KEYCODE_8=15;KEYCODE_J=38;KEYCODE_TAB=61;KEYCODE_SEARCH=84;
KEYCODE_9=16;KEYCODE_K=39;KEYCODE_SPACE=62;KEYCODE_MEDIA_PLAY_PAUSE=85;
KEYCODE_STAR=17;KEYCODE_L=40;KEYCODE_SYM=63;KEYCODE_MEDIA_STOP=86;
KEYCODE_POUND=18;KEYCODE_M=41;KEYCODE_EXPLORER=64;KEYCODE_MEDIA_NEXT=87;
KEYCODE_DPAD_UP=19;KEYCODE_N=42;KEYCODE_ENVELOPE=65;KEYCODE_MEDIA_PREVIOUS=88;
KEYCODE_DPAD_DOWN=20;KEYCODE_O=43;KEYCODE_ENTER=66;KEYCODE_MEDIA_REWIND=89;
KEYCODE_DPAD_LEFT=21;KEYCODE_P=44;KEYCODE_DEL=67;KEYCODE_MEDIA_FAST_FORWARD=90;
KEYCODE_DPAD_RIGHT=22;KEYCODE_Q=45;KEYCODE_GRAVE=68;KEYCODE_MUTE=91;
driver.press_keycode()

通知栏

只有开,没有关

要关闭的方法

  1. 滑动操作
  2. 按返回键 key=4
driver.open_notifications()

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:44:36  更:2021-08-10 13:44:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 16:15:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码