Appium之实操(了解配置项)
使用Appium,测试对象APP的运行环境有两种:① 真实设备 如手机 ②模拟器 如夜神
连接真实设备:
- 进入开发者模式,启动usb调试
- 在电脑上 执行adb命令 adb devices -l
注意: 这个adb在sdk\platform-tools\ 请确保路径在path环境变量中;如果不能识别,请安装对应手机的usb驱动。
连接模拟器:
- 电脑上下载安装好一个模拟器,仍然是进入设置,调整为开发模式;
- cmd ---利用adb命令 adb devices 执行查看是否连接上
注意:有时候会出现adb连接不上模拟器的问题,是因为两个不同adb版本的差异,导致版本不匹配。
解决办法是:cmd ---- 直接输入adb connect 127.0.0.1:62001
-----------------------------------------------------------------------------------------------------------------------------------------------------------
下面看实际例子:
import time,traceback
from appium import webdriver
desired_caps = {
'platformName': 'Android', # 测试平台
'platformVersion': '4.4.2', # 平台版本
'deviceName': 'xxx', # 设备名 可自定义
# 'app': r'd:\apktoutiao.apk', # 如果设备上未安装apk,可直接填写所测apk的包名路径
'appPackage': 'io.manong.developerdaily', # app启动的包文件名
'appActivity': 'io.toutiao.android.ui.activity.LaunchActivity', # app启动的入口文件名
'unicodeKeyboard': True, # 使用appium的输入法,支持中文并隐藏键盘
'resetKeyboard': True, # 重置键盘输入法 即自动化后,会还原成原来的输入法
'noReset': True, # 清除session信息,并且不会删除应用。 为了不保存修改的数据和app设置的内容而不影响下次使用
'newCommandTimeout': 6000 # 设置driver超时时间 appium server(服务端)监听客户端,认为没有连接通信了,就会超时断掉
}
# 启动Remote RPC
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps )
driver.implicity_wait(10)
try:
# 根据ID定位元素 用uiautomatorviewer工具
driver.find_element_by_id('tab_bar_plus').click()
time.sleep(1)
driver.find_element_by_id('btn_email').click()
time.sleep(1)
# 输入用户名、密码
ele1 = driver.find_element_by_id('edt_email')
ele1.send_keys('xxxx')
ele2 = driver.find_element_by_id('edt_password')
ele2.send_keys('xxxx')
time.sleep(2)
# 点击登录
driver.find_element_by_id('btn_login').click()
except:
print(traceback.format_exc())
input('*****Press to quit..*****')
driver.quit()
----------------------------------------------------------------------------------------------------------------------------------------------------------
在部分Android机型进行每次运行最新版的appium-desktop都需要安装AppiumSettings以及Unlock,并且安装过程中需要用户手动来确认,即使测试机上已经安装了这两个组件,
运行appium也会要求安装,对于测试以及脚本的调试来说非常不便。
解决办法:
j进入appium的安装目录 如:C:\User\Administrator\AppData\Local\Programs\Appium\resources\app\node_modules\appium-android-driver\lib 找到android-helpers.js文件进入将:
//await adb.install(unicodeIMEPath,false);
//await gelpers.pushSettinggsApp(adb);
//await helpers.pushUnlock(adb); 统统注释掉。
继续将: //return_regeneratorRuntime.awrap(adb.install(_appiumAndroidIme.path,false))注释掉,并且在该行下方加上一行
return context$1$0.abrupt('return',defaultIME);
继续修改以下两行改法同上面这个一样:
//return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));这句注释掉
return context$1$0.abrupt('return',defaultIME); 新增这句
//return _regeneratorRuntime.awrap(helpers.pushUnlock(adb));这句注释掉
return context$1$0.abrupt('return',defaultIME); 新增这句
最后保存退出。重启appium即可。
Appium之实操(了解配置项)的更多相关文章
- Appium常用Api实操
本文是基于python语言在android上实操的,仅记录(忽略排版~~~) 会不时更新的: from appium import webdriver from selenium.webdriver. ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了
引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中? 本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中 ...
- Mysql MHA(GTID)配置(实操)
实现环境 centos6.7 MYSQL5.6.36 主:192.168.1.191 从1:192.168.1.145 从2:192.168.1.146 监测:放在从2上 192.168.1.146 ...
- Selenium之unittest测试框架详谈及实操
申明:本文是基于python3.x及selenium3.x. unittest,也可以称为PyUnit,可以用来创建全面的测试套件,可以用于单元自动化测试(模块).功能自动化测试(UI)等等. 官方文 ...
- unittest测试框架详谈及实操(二)
类级别的setUp()方法与tearDown()方法 在实操(一)的例子中,通过setUp()方法为每个测试方法都创建了一个Chrome实例,并且在每个测试方法执行结束后要关闭实例.是不是觉得有个多余 ...
- .net基础学java系列(四)Console实操
上一篇文章 .net基础学java系列(三)徘徊反思 本章节没啥营养,请绕路! 看视频,不实操,对于上了年龄的人来说,是记不住的!我已经看了几遍IDEA的教学视频: https://edu.51cto ...
- RTN 实操
创建房间 test-rtn 10001 e2uii6r7r 8LfwOcreM76OiV1V1y8jXrMG_BNa-cmktpWUznRa:kdYdsEpcYLc5ceWEHPaK0ZDI7Qc=: ...
- 6.3 Pandora 实操 - 数据立方
简介 数据立方是适用于大规模实时数据(每天百亿条,10TB+ 级别数据)查询与分析的数据库系统,提供交互式的访问数据的能力,支持数据过滤.分组.聚合,实现亚秒级以内对亿行级别的数据表进行多维探索分析. ...
随机推荐
- gitbook的插件配置
原生的gitbook样式比较单一,美观度和功能欠佳,可通过相关插件进行拓展. 插件地址:https://plugins.gitbook.com/ 主目录下新建book.json: { "au ...
- Centos7編譯安裝LAMP平臺
什麽是LAMP? 拆開看 L 就是Linux系統 A是Apache的縮寫 M.P則是MySQL和PHP的简写. 其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行 ...
- 使用class关键字创建类组件、props参数
import React,{Component} from 'react' import {render} from 'react-dom' // 使用class创建组件 class Movie ex ...
- ArrayList和LinkedList的源码学习,理解两者在插入、删除、和查找的性能差异
List的使用 List的子类 1). ArrayList 数据结构:数组 2). Vector 数据结构:数组 3). LinkedList 数据结构:循环双向链表 ArrayList .Vecto ...
- PowerMock学习(五)之Verifying的使用
前言 Verifying是一个非常强大的测试工具,在mock系列框架中使用广泛,主要用于验证方法是否被调用,下面将举例说明. 场景 模拟这样一个场景,通过Dao查询学生,如果存在更新原来学生,不存在则 ...
- Openlayers ol.interaction.Select传值问题
说明: 在使用ol.interaction.Select时,我定义的变量作用域作用不到其回调函数里,但我在select结果中,需要用到这些变量 解决方案: 虽想了个办法解决了,但不知道是不是合理:是否 ...
- SpringBoot学习(六)—— springboot快速整合RabbitMQ
目录 Rabbit MQ消息队列 简介 Rabbit MQ工作模式 交换机模式 引入RabbitMQ队列 代码实战 Rabbit MQ消息队列 @ 简介 优点 erlang开发,并发能力强. 社区活跃 ...
- 运用python实现冒泡排序算法
冒泡排序,一个经典的排序算法,因在算法运行中,极值会像水底的气泡一样逐渐冒出来,因此而得名. 冒泡排序的过程是比较两个相邻元素的大小,然后根据大小交换位置,这样从列表左端开始冒泡,最后最大值会依次从右 ...
- css控制ul标签下的指定li标签样式
ul li:first-child{ } 第一个ul li:last-child{ } 最后一个ul li:nth-child(4){ } 指定第几个,4就是代表第四个ul li:nth-chi ...
- SpringBoot时间参数处理完整解决方案
在JavaWeb程序的开发过程中,接口是前后端对接的主要窗口,而接口参数的接收有时候是一个令人头疼的事情,这其中最困扰程序猿的,应该是时间参数的接收. 比如:设置一个用户的过期时间,前端到底以什么格式 ...