运行app自动化代码时报"Encountered internal error running command: UnknownError: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server..." 解决方案: 不使用appium默认的端口号 4723,将端口号改为4725,启动可运行.…
[debug] [iOS] App is not installed. Will try to install. [MJSONWP] Encountered internal error running command: Error: Installing /var/folders/hb/5xtrkgp16bj3rctx9kxg64t00000gn/T/2016913-9705- 1ugvtlc/Payload/Input.app failed at /Applications/Appium.a…
1.打开 uiautomatorviewer同步的的时候突然报错 Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException 解决:试了很多方法,重新开启uiautomatorviewer也没有解决,最后进入手机终端中,开发者模式,关闭再开启usb调试,就解决了~ 2.error: Chromedriver: Chromedriver exited unexpectedly with code nul…
appium工作原理 appium 在android端工作流 client端也就是我们 test script是我们的webdriver测试脚本. 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol.在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,…
日志级别 debug.info.warn.error.critical五个级别 logging模块构成(四部分) logger(记录器,用于日志采集) Handler(处理器,将日志记录发送到合适的路径) Filter(过滤器,提供了更好的粒度控制,决定输出哪些日志记录) Formatter(格式化起,指明了日志的格式) logger(记录器) 在使用debug.info.warn.error.critical五个级别之前创建logging实例 方法:basicConfig()为日志记录系统做基…
Yaml简介 Yaml:"Yet Another Markup Language"(是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名. appium中,yaml 是专门用来写配置文件的语言,语言很简洁.强大,格式有点类似于json,感觉要比json强大点. 语法特点: 1.大小写敏感: 2.使用缩进表示层级关系: 3.缩进时不允许使用Tab键,只允许使用空格: 4.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可. yaml下载 ht…
问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素定位,而Web网页是单独的B/S架构,两者的运行环境不同因此需要进行上下文(context)切换,然后对H5页面元素进行定位操作. context 关于应用程序环境的全局信息的接口. 这是一个抽象类,其实现由Android系统提供. 它允许访问特定于应用程序的资源和类,以及对应用程序级…
只要接触到app自动化,难免会遇到许多坑,今天说说解决中文输入的问题. 流程: 进入到淘宝应用,点击搜索栏,输入文字 一开始send_keys(“中文”)时,搜索栏一直没有出现文字,脚本也没有提示报错,后面通过寻找资料,才知道desired_caps中缺少配置 "unicodeKeyboard":True(用unicode编码方式发送字符串) "resetKeyboard":True (键盘隐藏) 脚本运行后得已解决…
appium模拟用户的真实操作,如果用户第一次进入app或许会弹出一些更新提示,或者是引导页面,但是下一次开启app时则没有引导页这些界面,这时,脚本中又肯定不考虑用两套代码来进行维护,此时如何应对这种场景进行处理呢? 比如启动淘宝应用,之前使用这个noReset配置,当默认设置为False,即每次进入都会清除掉session,即有温馨提示弹窗出现,那当设置为True时,第二次进入时,不会有弹窗,那此时再执行原有的脚本就会报错,有人会说用if语句来进行判断,亲测也会出现问题,所以最后还是推荐用t…
元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name class List定位 相对定位 Xpath定位 H5页面元素定位 Uiautomator定位 首先可以进入SDK中的tools文件夹中打开uiautimatorviewer.bat,用于元素定位 测试场景,启动淘宝app,同意温馨提示,进入首页 id定位 Appium中可以使用find_element…