zoukankan      html  css  js  c++  java
  • appium基础之简单的小例子

    appium环境搭建了,当然也要开始用起来了,记录一下学习的过程
    • 遇到问题
    • 1.The permission to start '.ui.home.view.HomeActivity' activity has been denied.Make sure the activity/package names are correct.
    • 解决办法1:可能是以为没有拿到真正的启动activty
    • a.手机运行着app
    • b.进入adb shell模式,输入命令:dumpsys activity activities >C:UsersadminDownloadsTESTERmonkey_logaa.txt
    • c.结果报错:
    • system/bin/sh: can't create C:UsersadminDownloadsTESTERmonkey_logaa.txt: Read-only file system
    • shell模式不识别路径导致出现这个问题,直接输出adb shell dumpsys activity activities >C:UsersadminDownloadsTESTERmonkey_logaa.txt
    • 成功输出日志,打开路径下的aa日志,搜索Package 查看包名,搜索 realActivity这个关键字就可以查看包名和activity
    • 搜索结果如下:
    • realActivity=包名/启动activity
    • 总结起来,真的是因为没有拿对activity启动页面的。。。
     
    • 如何让实现appium的简单的自动化
    1. 1.基础环境搭建是基础
    2. 2.获取到app的包名和activity路径名称--在后面代码中会遇到
    3. 3.打开appiumdesktop 连接手机获取到打开页面,定位元素路径
    4. 4.开始编写代码,跑简单的脚本,和web的基本差不多
    •  下面是实现的代码:
    1. from appium import webdriver#导入appium包
    2. import time
    3. #连接手机app初始化的一些信息
    4. desc={}
    5. desc['deviceName']='721QEBRA28767'#手机设备名称,adb devices
    6. desc['platformVersion']='7.1.2'#手机版本,在手机中:设置--关于手机
    7. desc['platformName']='Android' #手机类型,ios或android
    8. #输入命令,获取app信息:aapt dump badging C:Users83473Desktopmobileqq_android.apk
    9. desc['appPackage']='vchat.faceme'#包名
    10. desc['appActivity']='.LaunchActivity'#启动入口
    11. desc["unicodeKeyboard"] = "True"#appium提供的一种输入法,可以传中文。测试时直接用这个输入法
    12. desc["resetKeyboard"] = "True"#程序结束时重置原来的输入法
    13. desc["noReset"] = "True"#不初始化手机app信息(类似不清楚缓存)
    14. #启动服务端,再cmd窗口输入appium.如果appium没有安装好,可以打开appium-desktop.也相当于启动了服务
    15. driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desc)#访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
    16. #上面是基础的配置,现在开始实战
    17. time.sleep(3)
    18. driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/vchat.common.widget.MyDrawerLayout/android.widget.LinearLayout/android.widget.RelativeLayout/androidx.recyclerview.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.TextView').click()
    19. time.sleep(3)
    20. driver.find_element_by_id('vchat.faceme:id/iv_voice_room').click()
    21. time.sleep(2)
    22. driver.find_element_by_id('vchat.faceme:id/btn_add_voice_room').click()
    23. time.sleep(5)
    24. print('简单的测试完成')
  • 相关阅读:
    ASP.NET Core的配置信息
    ASP .NET Core 建立列表和表单View
    ASP.NET Core 如何使用Mvc相关技术建立Controller、Tag Helper (下)
    MySQL日志突然暴涨
    MySQL函数索引及优化
    MySQL统计库表大小
    MySQL8.0窗口函数实践及小结
    MySQL按指定字符合并及拆分
    分享2个近期遇到的MySQL数据库的BUG案例
    mysql大表在不停机的情况下增加字段该怎么处理
  • 原文地址:https://www.cnblogs.com/YouxiYouxi/p/11364638.html
Copyright © 2011-2022 走看看