zoukankan      html  css  js  c++  java
  • appium---第一个脚本--启动一个已存在的app

    1、可以使用android-sdk中的aapt工具

    ①、选择一个版本的build_tools,加入path环境变量中

    ②、验证aapt环境是否正常

     3、下载你要测试的包到本地,放入某一地址中(随意):aapt dump badging D:Users4adminDesktopjianshu_xpgod.apk(包的位置)

    然后就可以获得包的所有信息,如包名、LauncheActivity

    4、然后就可以开始写脚本啦

    四、写脚本

        1platformName:这里是android的apk

        2.deviceName:手机设备名称,可以通过adb devices查看

        3.platformVersion:android系统的版本号(如6.0.1)

        4.appPackage:apk包名

        5.appActivity:apk的launcherActivity

    注意!!!:这些信息基本都能在这里找到,一定不能写错

    以下代码是照抄的网上资源

     1 from appium import webdriver;
     2 from appium import version;
     3 #from selenium import webdriver;
    
    10 #from appium import webDriver
    11 pack_info={
    12 'platformName':'android',
    13 'deviceName':'215a343c0804',
    14 'platformVersion':'23',(也可以写版本号,如7.1.2)
    15 'appPackage':'hykb.xmcy.hykb',(包名一定不能写错啊)
    16 'appActivity':'com.xmcy.hykb.app.ui.splash.SplashActivity'
       "noReset": "True"(发现每次启动实际上是一个重装过程,这样每次都会重置权限,这个开关True就是不重装,False就是重装)


    17 } 18 19 drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info); 20 #drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);

    运行后,

    第一个问题:提示no moudle  name'selenium',虽然不知道运行appium相关为什么要用selenium,但很明显还需要按照这个第三方,下载就是了(pip install selenium)

    第二个问题:第一个问题已经解决,那么确认连上手机、打开appium-client,运行py代码,正常应该要在设备中打开这个指定的app,实际却提示以下错误栈

    Traceback (most recent call last):
      File "C:/Users/4399-3046/PycharmProjects/test_case/appium_test.py", line 19, in <module>
        drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
      File "D:python3.7libappiumwebdriverwebdriver.py", line 129, in __init__
        proxy
      File "D:python3.7libsite-packagesseleniumwebdriver
    emotewebdriver.py", line 157, in __init__
        self.start_session(capabilities, browser_profile)
      File "D:python3.7libappiumwebdriverwebdriver.py", line 204, in start_session
        response = self.execute(RemoteCommand.NEW_SESSION, parameters)
      File "D:python3.7libsite-packagesseleniumwebdriver
    emotewebdriver.py", line 321, in execute
        self.error_handler.check_response(response)
      File "D:python3.7libsite-packagesseleniumwebdriver
    emoteerrorhandler.py", line 242, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.SessionNotCreatedException: Message: A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"])

    百度了一下,意思大概是:无法创建一个新的回话,因为启动的activity从来没有被启动~~~啥意思??我指定的启动Activity也没写错呀~然后网上说要指定一个【

    'appWaitActivity':'com.xmcy.hykb.app.ui.startup.role.RoleActivity'

    】,加了还是错误(其实关键我不知道这个appwaitActivity从哪里获取)

    1 > info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"])","origValue":"Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"]"},"sessionId":null}
    2 > info: <-- POST /wd/hub/session 500 11260.389 ms - 288 

    第二次尝试:仔细看了一下appium控制台的报错信息,找到以下信息:

    百度了一下,说是要在appium/node_modulesappium-adblibadb.js中加入以下代码,保存后,重启appium;--------------------------------加这个是因为我的手机版本号是7.0以上的,7.0以上Uautomator不兼容的问题,最终重启后,终于正常

    ======

    最终,app中启动正常

    =====

    发现另外一个问题,虽然上面已经启动成功

    ①、当我电脑上即打开了夜神模拟器,又链接了电脑,此时,再运行代码,会提示,找不到目标计算机

    但等我关掉两个模拟器,又正常了

    是不是一次不能链接太多设备??

    ===========================

    后面又遇到一个问题

     在部分android机型(目前在vivo中有遇到)上每次运行最新版的appium-desktop都需要安装AppiumSetting以及Unlock,并且安装过程需要用户手动来确认,即使测试机上已经安装了这两个组件,运行appium也会要求安装,对于测试以及脚本的调试来说非常不便。

    解决方案:https://www.cnblogs.com/testway/p/9324441.html

  • 相关阅读:
    再收藏一篇: oracle批量绑定 forall bulk collect用法以及测试案例
    Dll中导出导入时巧用条件编译指令共享头文件
    Oracle不支持在select语句中调用自定义函数时使用自定义类型作参数?
    (Alan Murta)编制的多边形集合运算软件包(general polygon clipping library,简称GPC)
    MSDN:CFile和CStdioFile区别以及CString中的'\r\n'
    REF CURSOR 小结
    Oracle存储过程中执行DDL操作
    Oracle在存储过程中,如何删除和创建表?
    收藏:关于表名也动态的动态SQL文章
    用Select查询结果创建ACCESS表
  • 原文地址:https://www.cnblogs.com/shenyexiaoqingxin/p/10443324.html
Copyright © 2011-2022 走看看