admin管理员组文章数量:1548492
1、第一步,环境搭建,参考这位博主的文章,很齐全
https://blog.csdn/qq_44757414/article/details/128142859
我在最后一步安装appium-doctor的时候,提示权限不足,换成sudo appium-doctor即可
2、第二步,安装桌面appium,https://github/appium/appium-desktop/releases,下载合适的版本安装即可
3、第三部,安装安卓模拟器,我是M1,找了一圈都没有适配的安卓模拟器,最后在这位博主的文章里找到了合适的,感谢
https://blog.csdn/weixin_41677874/article/details/125559161
我遇到一个问题,就是找不到opt目录,这个时候,在终端窗口,将opt目录改成不隐藏即可
sudo chflags nohidden opt
4、第四部,开始运行第一个小程序,启动APP
4.1、需要找到APP的包名和activity名称
首先,把apk文件下载到电脑上
其次,终端窗口,进入apk的目录下执行命令:aapt dump badging rimet_36180121811227.apk
4.2、创建一个Python项目
4.3、输入以下代码
# 导入webdriver
from appium import webdriver
# 初始化参数
desired_caps = {
'platformName': 'Android', # 被测手机是安卓
'platformVersion': '11', # 手机安卓版本
'deviceName': 'Android emulator', # 设备名,安卓手机可以随意填写
'appPackage': 'com.alibaba.android.rimet', # 启动APP Package名称
'appActivity': 'com.alibaba.android.rimet.biz.LaunchHomeActivity', # 启动Activity名称
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 退出程序,记得之前没敲这段报了一个错误 Error: socket hang up 啥啥啥的忘记了,有兴趣可以try one try
#driver.quit()
4.4、启动appium
4.5、启动安卓模拟器,检查adb自动连接了安卓模拟器
4.6、此时运行程序,就会看到模拟器中的钉钉启动啦
5、查找APP中的元素
5.1、点击appium桌面工具窗口的搜索符号,会跳转到官方地址
下载合适的版本
5.2、启动appium inspector,填写信息如下图,基本上和代码里是是一样的
5.3、点击start session,启动如下图,这个时候,就可以看到这个页面里的所有元素信息,可以操作点击、输入等操作
5.4、也可以启动录制功能,会自动生成代码在recorder区域,这部分代码可以直接粘贴到Python中使用,如果出现元素找不到的情况,可以替换一下查找元素的方式,比如id找不到,换成xpath一般都能找到
6、最后粘贴一段获取小红书榜单文章点赞数、收藏数、评论数的代码
# 导入webdriver
import time
import urllib.request
from appium import webdriver
# 初始化参数
from appium.webdriver.common.appiumby import AppiumBy
desired_caps = {
"platformName": "Android",
"platformVersion": "11",
"deviceName": "Android emulator",
"appPackage": "com.xingin.xhs",
"appActivity": "com.xingin.xhs.index.v2.IndexActivityV2",
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(3)
el1 = driver.find_element(by=AppiumBy.ID, value="com.xingin.xhs:id/fvw")
el1.click()
time.sleep(2)
driver.get_screenshot_as_file("xhs.png")
el2 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[3]/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[1]/android.widget.LinearLayout/android.widget.TextView")
el2.click()
el3 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.view.ViewGroup/android.view.ViewGroup/androidx.viewpager.widget.ViewPager/android.widget.FrameLayout/androidx.recyclerview.widget.RecyclerView/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.TextView")
el3.click()
el4 = driver.find_element(by=AppiumBy.ID, value="com.xingin.xhs:id/enl")
dianzan = el4.get_attribute("text")
print(dianzan)
el5 = driver.find_element(by=AppiumBy.ID, value="com.xingin.xhs:id/em7")
shoudang = el5.get_attribute("text")
print(shoudang)
el6 = driver.find_element(by=AppiumBy.ID, value="com.xingin.xhs:id/emd")
pinglun = el6.get_attribute("text")
print(pinglun)
#driver.quit()
运行结果如下:
版权声明:本文标题:Mac电脑,python+appium+安卓模拟器使用步骤 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727208212a1102463.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论