注:windwos中执行adb logcat |grep 'chrome' 会报错,grep不是内部命令,可以使用git bash
可以安装一个scrcpy,直接使用pip install scrcpy
1、连接mumu模拟器:
1)打开设置中的:USB调试模式
2)在cmd窗口执行命令:
adb connect 127.0.0.1:7555 #不同模拟器端口不同
3adb devices #查看是否连接
adb logcat #查看日志
adb logcat | grep -i xueqiu #xueqiu 的日志过滤出来
adb logcat | grep -i xueqiu | less adb logcat |grep -i displayed
adb shell #进入交互页面
exit #推出交互页面
adb shell am | less看命令详情
adb shell am start -W -S -n com.xueqiu.android/.view.WelcomeActivityAlias #先杀掉雪球再重新启动
3)获取包名和activity方法:
(1)adb logcat |grep -i displayed.*.xueqiu #执行命令后去模拟器上启动app,日志中第一行就是包名和Activity名称
(2)adb shell dumpsys activity top |less
(3)apkanayse
4)adb安装apk的命令
adb install ***.apk
2、appium操作:
1)看帮助文档
2)配置参数:(不知道配置哪些参数,可以直接点击右下角start session按钮,报错信息中会有提示)
3)appium官网示例代码
4)移动APP定位常用策略:
id(resource-olk,id)
xpath
accessibilityid(content-desc)
5)使用appium的inspector录制脚本方法:
生成的python代码如下:
from appium import webdriver caps = {} caps["platformName"] = "android" caps["deviceName"] = "demo" caps["app"] = "com.xueqiu.android" caps["appActivity"] = "view.WelcomeActivityAlias" driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) driver.implicitly_wait(10) #加一段隐式等待代码,让脚本运行通过 el1 = driver.find_element_by_id("com.xueqiu.android:id/open") el1.click() el2 = driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button") el2.click() el3 = driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button") el3.click() el4 = driver.find_element_by_id("com.xueqiu.android:id/home_search") el4.click() el5 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text") el5.send_keys("pdd") el6 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.RelativeLayout/android.widget.ListView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout[1]") el6.click() driver.quit()