笔记:从0开始到测试成功的手机模拟操作,一步步来,你可能会的更快。

1.安装jdk

Java Downloads | Oracle 中国

2.环境配置

我的电脑–》右键属性–》高级系统设置–》环境变量

系统变量–》新建系统变量–》完成后点击确定

变量名:JAVA_HOME
变量值:(这是你自己安装JDK时的路径)
    
作用:定义一个变量,供其他地方使用

双击系统变量下的PATH变量,新建两个路径

%JAVA_HOME%\bin
%JAVA_HOME%\jdk\bin

让系统在任何路径下都可以识别java、javac、javap等命令

 

新建/修改 CLASSPATH 变量

(1)、如果存在 CLASSPATH 变量,选中点击 Edit(编辑)

(2)、如果没有,点击 New(新建)… 新建

(3)、输入:(作用:告诉jvm要使用或执行的class放在什么路径上,便于JVM加载class文件,.;表示当前路径,tools.jar和dt.jar为类库路径)

变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

3.测试

win+R,输入cmd,打开命令窗口

输入:java -version

jdk完成。

4.SDK下载安装等

AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载icon-default.png?t=N7T8https://www.androiddevtools.cn/

安装后,打开SDK Manager.exe

Android SDK环境变量配置及连接真机_android sdk环境配置-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42780888/article/details/128315399

5.SDK环境配置 

“右键 我的电脑”—“属性”—“高级系统设置”—“环境变量”—“系统变量”—“新建”

创建ANDROID_HOME,值是你的刚刚SDK的解压目录,比如     E:\Android\android-sdk-windows

在新建完ANDROID_HOME之后,找到Path变量,然后双击打开Path 变量      

将SDK的platform-tools和tool的路径添加到Path 变量内(这两个目录在你通过SDK Manager安装更新Android SDK Tools和Android SDK Platform-tools之后就会有了)
1 新建 %ANDROID_HOME%\platform-tools
2 新建 %ANDROID_HOME%\tools
3 新建 %ANDROID_HOME%\build-tools\29.0.3   (这个要自己查看版本号)

 6.创建并启动安卓模拟器,测试

不要选择超过电脑屏幕分辨率的Device,其他选项可参考图,点击 “OK” 创建完成。

进入SDK的解压目录下,双击“AVD Manager.exe”打开安卓虚拟机管理器,如下图

 

 

 在 AVD Manage 工具中选中创建的Android虚拟机,点击 “Start…” 按钮启动(第一次启动会略慢,需要耐心的等一会儿),启动成功后如下图所示

出错了。Starting emulator for AVD 'test'
emulator: ERROR: This AVD's configuration is missing a kernel file! Please ensure the file "kernel-qemu" is in the same location as your system image.
emulator: ERROR: ANDROID_SDK_ROOT is undefined

AVD Manager(安卓模拟器)启动报错_this avd's configuration is missing a kernel file!-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/gzl0524/article/details/88826757?ops_request_misc=&request_id=&biz_id=102&utm_term=ERROR:%20ANDROID_SDK_ROOT%20is%20und&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-88826757.142%5Ev100%5Epc_search_result_base5&spm=1018.2226.3001.4187

 各种各类的错误解决方法,不一样。请在csdn上找答案。

以上是我找答案的部分网站:

This AVD‘s configuration is missing a kernel file!问题_this acd's configuration is missing a kernel file-CSDN博客

https://blog.csdn.net/yongchengphy/article/details/80458639

emulator:ERROR:This AVD's configuration is missing a kernel file! 解决方法_emulator: error: this avd's configuration is missi-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/sishen1994/article/details/88728635?ops_request_misc=&request_id=&biz_id=102&utm_term=emulator:%20ERROR:%20This%20AVD%27s%20co&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-88728635.142%5Ev100%5Epc_search_result_base5&spm=1018.2226.3001.4187

android AVD 启动时报错(emulator: erroremulator:ERROR:This AVD's configuration is missing a kernel file )_starting emulator for avd 'myandroid' emulator: er-CSDN博客

 我解决最后一个问题是通过下面这个:

“Emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration!”解决方案-CSDN博客

 

7.python 的安装,省略

8.pycharm 的安装 ,省略

9.appium下载 安装

Appium-Server-GUI-windows-1.22.3-4.exe https://www.alipan.com/s/yrR3m3K6QYi 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

https://blog.csdn.net/weixin_42617600/article/details/114111785

下载太慢。这儿提供了一个阿里的空间。不强求。

据实填写,不要全抄写。

 

启动

测试手机连接情况

相关解决方法:

adb调试:List of devices attached解决办法-CSDN博客

https://www.cnblogs.com/aszeno/p/15512323.html

当看到如下设备名称和device,这个才是真正连成功了

C:\Users\dell>adb devices
List of devices attached
Q5X7N19605002672        device

10.pycharm的样本测试

    pip install Appium-Python-Client

输入一段代码:

# 导入webdriver
from appium import webdriver
# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '10',  # 手机安卓版本
    'deviceName': 'xxx',  # 设备名,安卓手机可以随意填写
    'appPackage': 'tv.danmaku.bili',  # 启动APP Package名称
    'appActivity': '.ui.splash.SplashActivity',  # 启动Activity名称
    'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
    'resetKeyboard': True,  # 执行完程序恢复原来输入法
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)


# 退出程序,记得之前没敲这段报了一个错误 Error: socket hang up 啥啥啥的忘记了,有兴趣可以try one try
driver.quit()

如何查找以上的内容呢?以B站为例:

adb shell dumpsys activity recents | find “intent={”

C:\Users\dell>adb shell dumpsys activity recents | find "intent={"
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.MainActivityV2}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000300 cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.xunmeng.pinduoduo/.ui.activity.MainFrameActivity}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.contacts/.activities.DialtactsActivity}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.jingdong.app.mall/.main.MainActivity}
    intent={act=android.intent.action.MAIN flg=0x10840000 hwFlg=0x4100 cmp=com.android.incallui/.InCallActivity}
    intent={act=android.settings.SETTINGS flg=0x14000000 cmp=com.android.settings/.HWSettings}
    intent={flg=0x10000000 cmp=com.huawei.hisuite/.activity.WelComeActivity}
    intent={act=android.intent.action.VIEW dat=https://m1.cmbc.com.cn/... flg=0x14002000 pkg=com.huawei.browser cmp=com.huawei.browser/.BrowserMainActivity}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.mms/.ui.ConversationList}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.eg.android.AlipayGphone/.AlipayLogin}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.microsoft.emmx/com.microsoft.ruby.Main}
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.fcbox.hiveconsumer/kt.com.fcbox.hiveconsumer.app.business.entrance.EntranceDelegateActivity}

cmp=tv.danmaku.bili/.MainActivityV2

appPackage = tv.danmaku.bili
appActivity = .MainActivityV2

常用的adb命令:

1. adb devices -l    查看已链接的设备
2. adb shell getprop ro.build.version.release    查看Android内核版本号
3. adb shell dumpsys activity | findstr “mResume” 查看手机屏幕当前应用页面Activity名称已经包名 (window)
4. adb shell dumpsys window | grep mCurrent    查看手机屏幕当前应用页面Activity名称已经包名
(mac)
5.   adb devices  得到手机名'deviceName'

 可以参考的设置:重点参考inspector

appium——appium环境搭建及使用appium进行APP测试_appium settings-CSDN博客

Appium-Inspector安装及使用方法_appium inspector操作-CSDN博客

Python+Appium自动化测试-appium连接真机启动app_appium连接真机测试-CSDN博客

下载地址:记得切换到更多。

Releases · appium/appium-inspector (github.com)icon-default.png?t=N7T8https://github.com/appium/appium-inspector/releases

安装后,自己完成信息的输入,点保存后,本机会安装一个软件 。注意华为手机关闭纯净模式。不然真麻烦。

我的手机不小心删除了两个包,解决方案  到了一定位置搜:apks 可得。

C:\Program Files\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks

【Appium问题】Make sure the application under test does not crash and investigate the logcat output.-CSDN博客  终于行了。

至此,我们就成功地通过appium启动了测试机上的app。我们可以在这个页面查看app当前页面的元素的属性,如下图

无素定位教程

appium元素定位之元素定位工具(Appium Inspector)篇 - 知乎 (zhihu.com)

提供录制生成的代码,可以修改。很好

版本冲突问题,卡了我2个多小时?

 关于appium-python-client报错问题:AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘_attributeerror: 'nonetype' object has no attribute-CSDN博客

11.终于可以打开了。最简单的代码

from appium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

desired_caps = {
    'platformName': 'Android',
    'platformVersion': '10',
    'deviceName': ':VOG_AL10',
    'appPackage': 'tv.danmaku.bili',
    'appActivity': '.MainActivityV2',
    'unicodeKeyboard': True,
    'resetKeyboard': True,
    'noReset': True,
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 设置隐式等待时间
driver.implicitly_wait(10)

# try:
#     # 定位搜索框
#     search_bar = driver.find_element(By.ID, 'tv.danmaku.bili:id/search_src_text')
#
#     # 滑动到搜索框
#     action = ActionChains(driver)
#     action.move_to_element_with_offset(search_bar, 0, -20).perform()
#
#     # 输入搜索关键词
#     search_bar.send_keys('动漫')
#
#     # 模拟点击搜索按钮
#     search_button = driver.find_element(By.ID, 'tv.danmaku.bili:id/action_search')
#     search_button.click()
#
#     # 等待搜索结果列表出现
#     WebDriverWait(driver, 10).until(
#         EC.presence_of_element_located((By.XPATH, '//android.widget.ListView[@resource-id="com.bilibili:id/search_result_list_view"]'))
#     )

# finally:
#     # 关闭浏览器会话
#     driver.quit()

11.好了,关注,点赞,有问题留言,一起来。学习。

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当然可以!以下是一个基本的 Python 学习笔记: # Python从入门到精通 ## 基础知识 ### 数据类型 在 Python 中,常见的数据类型包括整数、浮点数、字符串、列表、字典等。我们可以使用 type() 函数查看变量的数据类型,例如: ``` a = 1 print(type(a)) # 输出 <class 'int'> ``` ### 控制流 Python 中的控制流包括 if 语句、for 循环、while 循环等。例如: ``` if x > 5: print("x 大于 5") else: print("x 小于等于 5") ``` ``` for i in range(10): print(i) ``` ``` while i <= 10: print(i) i += 1 ``` ### 函数 定义一个 Python 函数可以使用 def 关键字,例如: ``` def add(a, b): return a + b ``` ## 进阶知识 ### 面向对象编程 Python 是一门面向对象的语言,我们可以使用 class 关键字定义类,例如: ``` class Car: def __init__(self, color, speed): self.color = color self.speed = speed def run(self): print("我正在以{}的速度行驶,颜色为{}".format(self.speed, self.color)) ``` ### 文件读写 Python 通过 open() 函数来读写文件,例如: ``` with open('file.txt', 'w') as f: f.write('Hello, world!') with open('file.txt', 'r') as f: content = f.read() print(content) # 输出 'Hello, world!' ``` ### 异常处理 在写代码时可能出现各种错误,Python 提供了 try/except 语句来处理这些错误: ``` try: a = 1 / 0 except ZeroDivisionError: print("除数不能为 0") ``` 以上就是 Python 学习笔记的基本内容,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PyAIGCMaster

1毛钱也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值