很多人刚开始使用python+appium去执行APP自动化的时候经常会遇到webdriver.Remote,报错位置指向都是driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub/',desired_caps)这行代码

很容易误导别人错认为是自己的webdriver发生了错误,此时应该如何排查这个问题,以下将举例说明

当发生以下错误的时候

Traceback (most recent call last):
File "E:\Workplace\app test\login_test.py", line 22, in <module>
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub/',desired_caps)
File "E:\Python27\lib\site-packages\appium\webdriver\webdriver.py", line 36, in __init__
super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)

查看的错误信息实际并非以上的信息,很有可能是程序最后报错的信息,所以我们首要的任务需要对程序最后报错的信息进行排查

案例一:JAVA环境没有正常安装布置(案例转自网络)

最后的提示:

在最后的提示上已经明确的指出实际出错的错误,检查自己JAVA程序和环境变量的配置

可以在cmd命令上进行JAVA -VERSION检测环境是否正常(下图就是正常的返回)

案例二:APK的路径路径设置错误

最后的错误提示:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: Bad app: C:\ContactManager.apk. App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name. cause: Error: Error locating the app: ENOENT, stat 'C:\ContactManager.apk')

简单翻译为:原来的错误:错误的应用:C:\ contactmanager.apk。应用程序的路径必须是绝对的,或相对于Appium服务器安装目录,或一个URL压缩文件,或一个特殊的应用程序名称。原因:错误:错误定位的应用

解决方法:1、查看你的APK的路径是否正确,最好使用绝对路径

     2、假若找不到解决方法且安装功能非必要用例,可以使用adb shell install 应用包(包含路径) 将APK安装,去除安装的设置代码

大部分这种问题的错误居多都报错在最后,英文水平较差的兄弟可以使用翻译软件翻译大部分基本语言去理解,由于本人水平也有限,只是提供给大家找问题的一个方法,如有更好的方法可以在评论区留言讨论

以下是网络搜索结果的解决方法,为了方便读者参考,我也一并转载过来了

转载地址:http://blog.csdn.net/rziqq/article/details/51161543

先检查Appium server是否启动:

address 127.0.0.1  port 4723 将会用于webdriver.remote构造函数的第一个参数,

可以在config.py中如下配置:

cf_appium_hub = 'http://127.0.0.1:4723/wd/hub'
BaseActions.app_driver = webdriver.Remote(
command_executor=config.cf_appium_hub,
desired_capabilities={
'deviceName': config.cf_device_name,
'platformName': config.cf_platform_name,
'platformVersion': config.cf_platform_version,
'appPackage': app_package,
'appActivity': app_activity
})

[小菜随笔]新手使用appium+python进行自动化测试过程中webdriver.Remote报错的错误分析方法(带实例)的更多相关文章

  1. python已写内容中可能的报错及解决办法

    理论上我发的每个短文,直接复制放到py里面,python xx.py是可以执行的,不过因为版本,编码什么的问题会有报错,详见这里 报错: SyntaxError: Non-ASCII characte ...

  2. python接口测试自动化框架-发送邮件,邮箱报错: 535 Error, authentication failed

    1.无意中把腾讯企业邮箱设置为安全登录,接口测试自动化发送邮件,不能被正常接收.错误信息为:535 Error, authentication failed. 原因:认证安全登录后,原来新的邮箱代码传 ...

  3. python 3.7 jupyter中安装 docx报错

    from docx import Document报错: Import Error: No module named ‘exceptions‘ 解决办法: 使用下面的命令重新安装docx !pip i ...

  4. [Python]输出中文报错的解决方法

    问题现象:在PyCharm工具编辑python语句输出中文时,程序报错. 解决方法(2种): 1.在代码开头加#coding=utf-8(注意要加#) 2.还是在代码开头加#-*- coding: u ...

  5. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

  6. (appium+python)UI自动化_10_adb常用命令

    前言 adb(Android Debug Bridge)工具是android-sdk里的一个工具,是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互.在app自动化测试过程中,有时要用到adb命 ...

  7. appium 与 selenium python解决python 'WebElement' object does not support indexing 报错问题问题

    再用selenium编写测试脚本时,发现出现python 'WebElement' object does not support indexing 报错问题问题,再找一些解决方法时,发现Appium ...

  8. python 3.5.2安装mysql驱动报错

    python 3.5.2安装mysql驱动报错 python 3.5.2安装mysql驱动时出现如下异常: [root@localhost www]# pip install mysql-connec ...

  9. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

随机推荐

  1. 关于Tomcat在eclipse上的配置

    一:安装JDK(建议版本比较新的jdk,因为有很多集成于jdk软件需要的jdk版本比较高): jdk官网下载位置:http://www.oracle.com/technetwork/java/java ...

  2. servlet获取表单数据的方式和编码方式

    .在servlet中获取表单的数据的几种方式  1>request.getParameter(“name”)://获取指定名称的值,返回值类型是一个字符串  2>request.getPa ...

  3. JavaScript中Ajax

    Ajax技术,就是指:向服务器请求额外的数据而无须重新加载整个页面.其核心就是 XMLHttpRequest对象.(简称:XHR) 在这里,我们先讨论IE7及更高版本,以及FF,Opera,Chrom ...

  4. spring-task

    cronExpression的配置说明,具体使用以及参数请百度google 字段   允许值   允许的特殊字符 秒    0-59    , - * / 分    0-59    , - * / 小 ...

  5. webpack和gulp的区别

    Gulp应该和Grunt比较,他们的区别我就不说了,说说用处吧.Gulp / Grunt 是一种工具,能够优化前端工作流程.比如自动刷新页面.combo.压缩css.js.编译less等等.简单来说, ...

  6. django 模型

    一.project 与app之间的关系 1个project中可包含多个app eg:包含两个app的project的结构

  7. .Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。

    方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-- ...

  8. offsetwidth/clientwidth的区别

    clientWidth是对象看到的宽度(不含边线,即border)scrollWidth是对象实际内容的宽度(若无padding,那就是边框之间距离,如有padding,就是左padding和右pad ...

  9. 有关sublime text的插件安装

    .sumblime text 中的package control 插件包控件的安装步骤一:    Ctrl+` 调出console    粘贴代码: import urllib2,os; pf='Pa ...

  10. UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...