使用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之实操(了解配置项)的更多相关文章

  1. Appium常用Api实操

    本文是基于python语言在android上实操的,仅记录(忽略排版~~~) 会不时更新的: from appium import webdriver from selenium.webdriver. ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了

    引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中?         本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中 ...

  4. 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 ...

  5. Selenium之unittest测试框架详谈及实操

    申明:本文是基于python3.x及selenium3.x. unittest,也可以称为PyUnit,可以用来创建全面的测试套件,可以用于单元自动化测试(模块).功能自动化测试(UI)等等. 官方文 ...

  6. unittest测试框架详谈及实操(二)

    类级别的setUp()方法与tearDown()方法 在实操(一)的例子中,通过setUp()方法为每个测试方法都创建了一个Chrome实例,并且在每个测试方法执行结束后要关闭实例.是不是觉得有个多余 ...

  7. .net基础学java系列(四)Console实操

    上一篇文章 .net基础学java系列(三)徘徊反思 本章节没啥营养,请绕路! 看视频,不实操,对于上了年龄的人来说,是记不住的!我已经看了几遍IDEA的教学视频: https://edu.51cto ...

  8. RTN 实操

    创建房间 test-rtn 10001 e2uii6r7r 8LfwOcreM76OiV1V1y8jXrMG_BNa-cmktpWUznRa:kdYdsEpcYLc5ceWEHPaK0ZDI7Qc=: ...

  9. 6.3 Pandora 实操 - 数据立方

    简介 数据立方是适用于大规模实时数据(每天百亿条,10TB+ 级别数据)查询与分析的数据库系统,提供交互式的访问数据的能力,支持数据过滤.分组.聚合,实现亚秒级以内对亿行级别的数据表进行多维探索分析. ...

随机推荐

  1. Vue学习笔记:Vue组件的核心概念(下)

    1.双向绑定和单向数据流: 本质上还是单向数据流 视图<——>数据 v-model:仅仅是一个简写,用更少代码去实现功能. 自定义事件 .sync 修饰符 2.虚拟DOM及KEY属性作用 ...

  2. [WPF] Caliburn Micro学习一 Installation

    在之前的文章(http://blog.csdn.net/alvachien/article/details/5670838)里面,已经提到过MVC和MVVM在Design Pattern上的比较. 首 ...

  3. 理解clientWidth,offsetWidth,clientLeft,offsetLeft,clientX,offsetX,pageX,screenX

    1. clientWidth:表示元素的内部宽度,以像素计.该属性包括内边距,但不包括垂直滚动条(如果有).边框和外边距.(clientWidth = width + padding) 2. offs ...

  4. webpack优化之玩转代码分割和公共代码提取

    前言 开发多页应用的时候,如果不对webpack打包进行优化,当某个模块被多个入口模块引用时,它就会被打包多次(在最终打包出来的某几个文件里,它们都会有一份相同的代码).当项目业务越来越复杂,打包出来 ...

  5. Ubuntu 16.04 安装Docker

    1 更改apt源,更改前先对sources.list文件进行备分 ccskun@test:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list. ...

  6. fiddler工具使用大全

    Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改. 代理就是在 ...

  7. java中的string对象深入了解

    这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...

  8. [转]shell 特殊字符

    下面这篇博文对特殊字符总结的非常齐全.这里做一下mark.另外补充一些例子. https://blog.csdn.net/K346K346/article/details/51819236 假设我们定 ...

  9. IT人该如何未雨绸缪,不断提升自己的竞争力?同时尽量避免风险?

    人会慢慢变老,变老后精力,记忆力乃至身体会慢慢变差,这是无法逆转的自然规律.随之会产生的是对中年危机的忧虑乃至恐惧,比如担心能力精力不及年轻人,从而导致收入锐减乃至失业. 对此我有如下三点不解.第一, ...

  10. vim的各项指令

    lesson1 <ESC> 保证进入正常模式 :q!回车   退出编辑器 x 删除光标所在的字母 i 添加内容 A 自动追加内容到行尾 :wq 保存文件并退出 lesson2 dw 删除某 ...