admin管理员组

文章数量:1130349

需要准备:

1. 安装Genymotion(虚拟机)

Genymotion下载地址  安装过程跟着引导点next,另外注册一个号就可以了。

安装完成后安装个安装的虚拟机

看场景需求需要多大分辨率就选择那个点击next,跟着引导走就可以了

1.1 关联Android SDK

在Genymotion主界面依次点击进入 Setting>ADB,选择SDK的根目录就可以()
验证成功方法: 打开cmd界面,执行adb devices 有返回即可

2. 安装virtualbox(必须要的)

virtualbox下载地址 安装完Genymotion后是提示安装virtualbox的,如果跳过了就安装下就可以了

3. 安装JDK

安装SDK需要JDK环境的,什么JDK版本不重要,有就可以了

jdk下载地址  整个exe的,不用配置环境,下载好后双击跟着引导走该改安装路径就改可以了

验证安装成功方法:打开cmd界面, 输入java,有返回结果就可以,没有的话则是环境配置有问题

4. 安装Appium Server

Appium Server下载地址 同样整个exe方便安装,github下载地址的,访问不了则进入C:\Windows\System32\drivers\etchosts文件,在最下面加入下面三个

140.82.113.4 github

199.232.69.194 github.global.ssl.fastly

185.199.108.153 assets-cdn.github

5. 安装Android SDK

https://pan.baidu/s/1uCyRVWaHmxm0cc_2UMUk3w?pwd=1234

(资源来源地址:Appium原理与安装 - 白月黑羽)

网盘地址,没招了整个最快的,整合了adb和sdk,解压好后进入环境变量中添加一个变量

ANDROID_HOME  设置为sdk的安装目录

在PATH中,加入adb的路径 {sdk根目录}\platform-tools\

最后在cmd中输入adb,如果有返回结果,则配置成功

6. pip安装所需要包

PS:因为用的是python,如果是用java或者nodejs,自行搜索所需的包

pip install appium-python-client==2.8.1

pip install selenium= 4.3.0

pip install appium

连接虚拟机

1. 配置完成adb后,完成1.1的步骤,并运行安卓虚拟机,随便打开某个应用

2. 开启Appium客户端,直接点击start server

3. 打开cmd,控制台查找需要的配置

如果adb配置成功了,那么下面的命令都是可以正常返回的

# 获取安装虚拟机的ID,device是代表该设备正常运转

C:\Users\20113>adb devices
List of devices attached
192.168.56.101:5555     device

# 获取appPackage和appActivity,返回值不一定都一样,不过格式差不多,返回多条的话看第一条就可以了

C:\Users\20113>adb shell dumpsys activity recents | find "intent={"
    intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.launcher3/.uioverrides.QuickstepLauncher}

返回值说明如下图,

appPackage是cmp斜杆前面的内容(com.android.launcher3)

appActivity是cmp斜杆后面的内容(.uioverrides.QuickstepLauncher)

4. 连接安装虚拟机

from appium import webdriver
from appium.options.android import UiAutomator2Options

desired_caps = {
    "platformName": "Android", # 说明是安卓不是苹果
    "deviceName": "Samsung Galaxy S9",  # 可以在Genymotion中查看设备名称
    "udid": "192.168.56.101:5555",   # adb devices 返回的结果
    "appPackage": "com.android.launcher3",  # 前面说的appPackage
    "appActivity": ".uioverrides.QuickstepLauncher",  # 前面说的appActivity
    "automationName": "UiAutomator2"
}

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', options=UiAutomator2Options().load_capabilities(desired_caps)) # 地址要写appium的客户端中填写的地址和端口

运行之后可以打开安卓虚拟机,查看这个应用是否打开了,如果打开了,则就是连接成功了

可能碰到的错误

1. AttributeError: type object 'RemoteConnection' has no attribute 'user_agent'

导致原因:Appium Python 客户端与 Selenium 版本不兼容导致的。RemoteConnection 类的 user_agent 属性在较新的 Selenium 版本中可能已被移除或修改,而 Appium 客户端依赖于这个属性

解决方法:

pip uninstall selenium
pip install selenium==4.3.0  

 2. urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

导致原因: webdriver.Remote 的第一个值command_executor 写错了

解决方法: 改成和appium一样的IP


待续

需要准备:

1. 安装Genymotion(虚拟机)

Genymotion下载地址  安装过程跟着引导点next,另外注册一个号就可以了。

安装完成后安装个安装的虚拟机

看场景需求需要多大分辨率就选择那个点击next,跟着引导走就可以了

1.1 关联Android SDK

在Genymotion主界面依次点击进入 Setting>ADB,选择SDK的根目录就可以()
验证成功方法: 打开cmd界面,执行adb devices 有返回即可

2. 安装virtualbox(必须要的)

virtualbox下载地址 安装完Genymotion后是提示安装virtualbox的,如果跳过了就安装下就可以了

3. 安装JDK

安装SDK需要JDK环境的,什么JDK版本不重要,有就可以了

jdk下载地址  整个exe的,不用配置环境,下载好后双击跟着引导走该改安装路径就改可以了

验证安装成功方法:打开cmd界面, 输入java,有返回结果就可以,没有的话则是环境配置有问题

4. 安装Appium Server

Appium Server下载地址 同样整个exe方便安装,github下载地址的,访问不了则进入C:\Windows\System32\drivers\etchosts文件,在最下面加入下面三个

140.82.113.4 github

199.232.69.194 github.global.ssl.fastly

185.199.108.153 assets-cdn.github

5. 安装Android SDK

https://pan.baidu/s/1uCyRVWaHmxm0cc_2UMUk3w?pwd=1234

(资源来源地址:Appium原理与安装 - 白月黑羽)

网盘地址,没招了整个最快的,整合了adb和sdk,解压好后进入环境变量中添加一个变量

ANDROID_HOME  设置为sdk的安装目录

在PATH中,加入adb的路径 {sdk根目录}\platform-tools\

最后在cmd中输入adb,如果有返回结果,则配置成功

6. pip安装所需要包

PS:因为用的是python,如果是用java或者nodejs,自行搜索所需的包

pip install appium-python-client==2.8.1

pip install selenium= 4.3.0

pip install appium

连接虚拟机

1. 配置完成adb后,完成1.1的步骤,并运行安卓虚拟机,随便打开某个应用

2. 开启Appium客户端,直接点击start server

3. 打开cmd,控制台查找需要的配置

如果adb配置成功了,那么下面的命令都是可以正常返回的

# 获取安装虚拟机的ID,device是代表该设备正常运转

C:\Users\20113>adb devices
List of devices attached
192.168.56.101:5555     device

# 获取appPackage和appActivity,返回值不一定都一样,不过格式差不多,返回多条的话看第一条就可以了

C:\Users\20113>adb shell dumpsys activity recents | find "intent={"
    intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.launcher3/.uioverrides.QuickstepLauncher}

返回值说明如下图,

appPackage是cmp斜杆前面的内容(com.android.launcher3)

appActivity是cmp斜杆后面的内容(.uioverrides.QuickstepLauncher)

4. 连接安装虚拟机

from appium import webdriver
from appium.options.android import UiAutomator2Options

desired_caps = {
    "platformName": "Android", # 说明是安卓不是苹果
    "deviceName": "Samsung Galaxy S9",  # 可以在Genymotion中查看设备名称
    "udid": "192.168.56.101:5555",   # adb devices 返回的结果
    "appPackage": "com.android.launcher3",  # 前面说的appPackage
    "appActivity": ".uioverrides.QuickstepLauncher",  # 前面说的appActivity
    "automationName": "UiAutomator2"
}

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', options=UiAutomator2Options().load_capabilities(desired_caps)) # 地址要写appium的客户端中填写的地址和端口

运行之后可以打开安卓虚拟机,查看这个应用是否打开了,如果打开了,则就是连接成功了

可能碰到的错误

1. AttributeError: type object 'RemoteConnection' has no attribute 'user_agent'

导致原因:Appium Python 客户端与 Selenium 版本不兼容导致的。RemoteConnection 类的 user_agent 属性在较新的 Selenium 版本中可能已被移除或修改,而 Appium 客户端依赖于这个属性

解决方法:

pip uninstall selenium
pip install selenium==4.3.0  

 2. urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

导致原因: webdriver.Remote 的第一个值command_executor 写错了

解决方法: 改成和appium一样的IP


待续

本文标签: 手机虚拟机AppiumGenymotion