appiun环境安装配置及与python结合使用

环境准备

1.环境安装

网盘下载

需要安装的4个东西都放这了,也可以去网上自行下载:网盘地址

1. 安装android-sdk-windows

下载完成后解压,点击SDK Manager.exe安装连接安卓的tools
目录

手机是哪个版本的Android就下载哪一个,我这里是Android9,其他的不用选,选中之后点右下角的Install(注:下载巨耗时,不要下错喽)
下载工具

2. 安装jdk

一路next即可,记住安装位置

3. 安装nodejs

版本不宜过高,否则appium无法启动

4. 安装appium

双击exe直接安装

2.环境配置

环境变量中的地址都为你自己实际安装的地址。

  1. 配置android-sdk-windows环境变量(系统变量)
变量
ANDROID_HOMEF:\android-sdk-windows
path%ANDROID_HOME%\platform-tools
path%ANDROID_HOME%\tools
  1. 配置java环境变量
变量
CLASSPATH%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
JAVA_HOMEF:\jdk(jdk安装目录)
path%JAVA_HOME%\jre\bin
path%JAVA_HOME%\bin
  1. nodejs环境变量
变量
pathF:\nodejs(nodejs安装目录)

appium使用

确保手机打开开发者模式以及USB调试,adb devices命令可以看到设备,如下:设备

  1. 打开appium
    appium桌面图标
    打开如下:appium界面
    若环境变量配置无误,可直接Start Server
    开启服务

  2. 代码连接手机应用

from appium import webdriver


desired_caps = {}
desired_caps['platformName'] = 'Android'  # 手机系统
desired_caps['platformVersion'] = '9'  # 手机系统版本,我的为Android 9
desired_caps['deviceName'] = 'MI 9'  # 设备名,着实填写
desired_caps['appPackage'] = 'com.ss.android.article.news'  # app包名,这个为"今日头条"
desired_caps['appActivity'] = 'com.ss.android.article.news.activity.SplashBadgeActivity'  # app入口
desired_caps["noReset"] = "True"  # 不初始化手机app信息,不添加此项每次执行程序都是手机第一次打开app的情形

# 访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) 

执行以上代码可以看到手机上“今日头条”应用自动打开。

注:第一次执行appium会在手机中安装“Appium Settings”,需要手机允许“通过USB安装应用”,例如我的小米手机需要打开“开发者选项”下的“USB调试”、“USB安装”以及“USB调试(安全设置)”

  1. 定位元素

定位元素的方法参考:
方法

  1. 提取信息
from appium import webdriver


desired_caps = {}
desired_caps['platformName'] = 'Android'  # 手机系统
desired_caps['platformVersion'] = '9'  # 手机系统版本,我的为Android 9
desired_caps['deviceName'] = 'MI 9'  # 设备名,着实填写
desired_caps['appPackage'] = 'com.ss.android.article.news'  # app包名,这个为"今日头条"
desired_caps['appActivity'] = 'com.ss.android.article.news.activity.SplashBadgeActivity'  # app入口
desired_caps["noReset"] = "True"  # 不初始化手机app信息,不添加此项每次执行程序都是手机第一次打开app的情形

# 访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

results = driver.find_elements_by_id("com.ss.android.article.news:id/uy")  # 当前一屏的所有新闻
for item in results:
    title = item.find_elements_by_id("com.ss.android.article.news:id/title")  # 每一条新闻的标题元素
    title = title[0].text if title else ''  # 标题内容
    print(title)

这样,标题就打印出来了
执行结果
可以写一个模拟上滑的操作,然后将代码写在循环中,这样就可以一直采集。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值