appium 测试过程中遇到的几个问题 ---持续更新!
一. appium自带的Chromedriver版本和设备Android System Webview版本不一致的问题
报错信息:
io.appium.java_client.NoSuchContextException: An unknown server-side error occurred while processing the command. Original error: Failed to start Chromedriver session: An unknown server-side error occurred while processing the command. Original error: unknown error: unable to discover open pages
(Driver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.17134 x86_64)
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'LAPTOP-4E93JJO7', ip: '192.168.1.16', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191'
Driver info: appium.ctyun.base.AndroidTestBase.AndroidCtyunDriver
Capabilities {appActivity: com.ctg.itrdc.ecloud.module..., appPackage: com.ctg.itrdc.ecloud.test, appiumVersion: 1.8.1, automationName: uiautomator2, browserName: , databaseEnabled: false, desired: {appActivity: com.ctg.itrdc.ecloud.module..., appPackage: com.ctg.itrdc.ecloud.test, appiumVersion: 1.8.1, automationName: uiautomator2, browserName: , deviceName: XEGNW18315004797, locationContextEnabled: true, noReset: true, noSign: true, platformName: android, platformVersion: 8.0.0, resetKeyboard: true, unicodeKeyboard: true}, deviceApiLevel: 26, deviceManufacturer: HUAWEI, deviceModel: FLA-AL10, deviceName: XEGNW18315004797, deviceScreenDensity: 540, deviceScreenSize: 1080x2160, deviceUDID: XEGNW18315004797, javascriptEnabled: true, locationContextEnabled: true, networkConnectionEnabled: true, noReset: true, noSign: true, pixelRatio: 3.375, platform: LINUX, platformName: Android, platformVersion: 8.0.0, resetKeyboard: true, statBarHeight: 72, takesScreenshot: true, unicodeKeyboard: true, viewportRect: {height: 1966, left: 0, top: 72, width: 1080}, warnings: {}, webStorageEnabled: false}
Session ID: 31ca153d-22d7-41a8-9171-7517a9747a34
关键词:
chromedriver=2.40.565498 查看了手机的webview版本为: 66.0
版本对应表:http://appium.io/docs/en/writing-running-appium/web/chromedriver/#chromedriverchrome-compatibility
appium存放chromedriver的路径
http://appium.io/docs/en/writing-running-appium/web/chromedriver/#chromedriverchrome-compatibility
chromedriver下载地址http://chromedriver.storage.googleapis.com/index.html
../node_modules/appium/node_modules/appium-chromedriver/chromedriver/win
下载对应的版本进行覆盖(这里注意,下载的版本尽量高一点点,例如你webview版本是66.0.XXX 至少下载2.38的版本, 2.37可能不匹配你的版本)
---------------------------出现该问题很蛋疼,如果appium更新的话就会自动覆盖之前的chromedriver,大家切记别随意更新版本--------------------- 二. 如何获取手机上弹出的toast内容
获取toast,必须使用appium的新的元素定位方式: uiautomator2 , 默认是uiautomator
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,"uiautomator2");
但是你发现设置了上面的属性后,启动手机直接报错,无法启动appium了。
原因:没有安卓uiautomator2-driver
安装方式:(翻墙可以用npm ,否则用国内镜像cnpm)
cnpm install appium-uiautomator2-driver
安装好了之后, 启动程序会提示手机安装uiautomator2 的server ,安装完之后可以正常启动你测试的APP了。
附上获取toast的代码
public static String getToast() {
WebDriverWait wait = new WebDriverWait(driver, 10, 10);
WebElement target = wait.until(
ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@class='android.widget.Toast']")));
if (target != null) {
return target.getText();
} else
Log.logInfo("Can't get toast !!");
return null;
}
appium 测试过程中遇到的几个问题 ---持续更新!的更多相关文章
- C#、Java中的一些小知识点总结(持续更新......)
前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...
- Appium测试过程中,建议使用谷歌输入法。用搜狗输入法报错报找不到元素,卡住
1. 手机使用谷歌输入法,在登录页面输入密码时输入数字时卡住报错 代码: 手机卡住 页面:看到页面上没有显示数字,所以卡住报错
- 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)
1)Type.IsGenericType类似属性变更 以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断: 以下是.net core(nets ...
- MySQL使用过程中的报错处理(持续更新)
一.数据库初始化 1.Percona的MySQL 5.6.20版本数据库初始化 初始化命令(MySQL 5.6版本不适用mysqld命令进行初始化) ./scripts/mysql_install_d ...
- Spring配置文件中的那些标签意味着什么(持续更新)
前言 在看这边博客时,如果遇到有什么不清楚的地方,可以参考我另外一边博文.Spring标签的探索,根据这边文章自己来深入源码一探究竟.这里自己只是简单记录一下各标签作用,每个人困惑不同,自然需求也不一 ...
- dubbo初认知(dubbo和springCloud关系,在微服务架构中的作用等)(持续更新中)
一:dubbo是什么? dobbuo是阿里开源的一个高性能优秀的服务框架, 可通过高性能的 RPC 实现服务的输出和输入功能,使得应用可以和 高性能的rpc实现输入和输出的功能,可以了 Spring ...
- 个人在 laravel 开发中使用到的一些技巧(持续更新)
1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...
- 学习中遇到的c++问题,持续更新
原文请訪问我的博客:http://xiaoshig.sinaapp.com/ 向上取整 使用ceil函数.ceil(x)返回的是大于x的最小整数.如: ceil(2.5) = 3 ceil(-2.5) ...
- 某人在企业中遇到的Spark问题记录[持续更新]
https://github.com/ssg-7max/ssg 目前 ssg内公司内部 spark streaming 处理数据源是kafka 目前遇到最大的问题是,会延迟,例如我们配置1分钟让窗口计 ...
随机推荐
- RocketMQ消费批拉超过32不生效
由于一些原因,我需要RocketMQ消费的时候,一批拉400条,一批处理400条.设置如下: 为了简单验证是否正确,消费如下: 直接通过打印msgs.size()观察情况即可. 现象 实验的topic ...
- golang初识3 - func
1. 功能块(function block) 格式: func function_name( [parameter list] ) [return_types] { //body } 与delphi的 ...
- mpvue
使用mpvue开发小程序 首先安装 我们使用@vue/cli 无法使用vue init 可以全局安装一个@vue/cli-init npm install -g @vue/cli-init 然后初始化 ...
- BootStrap table动态增删改表格内数据
1:添加一个[操作]列 { title: "操作", align: 'center', valign: 'middle', width: 160, // 定义列的宽度,单位为像 ...
- k8s创建pod流程
kubernetes 创建Pod 的 工作流: step.1 kubectl 向 k8s api server 发起一个create pod 请求(即我们使用Kubectl敲一个create pod命 ...
- 用ASP.NET_Regsql.exe创建Session数据库
CMD: C:\Users\ZhangSC>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe -S ZhangS ...
- ThreadLocal 原理及一些实现
ThreadLocal = TL 网上讲TL原理很多,我大概说下自己的理解 TL其实是不是有点像全局的配置中心,static ConcurrentHashMap<Thread,value> ...
- Django自定义模板标签和过滤器
1.创建模板库 在某个APP所在目录下新建包templatetags,然后在其中创建存储标签或者过滤器的的模块,名称随意,例如myfilters.py. 在这个模块中编写相关代码. 注意:templa ...
- zabbix3.0.4 探索主机Discovery自动发现agent主机和zabbix-agent自动注册详细图文教程
Zabbix 自动发现(Discovery)功能使用 随着监控主机不断增多,有的时候需要添加一批机器,特别是刚用zabbix的运维人员需要将公司的所有服务器添加到zabbix,如果使用传统办法去单个添 ...
- javaweb复习(一)
学习网站开发一般都是3部走.1.基本的servlet.jsp.js.html的内容学习.2.ssm.ssh之类的框架学习.3.大型网站开发的框架和技术学习(目前我还没学到),我学习这部分主要的书是李兴 ...