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
版权声明:本文标题:Appium,genymotion 连接手机(虚拟机替代手机) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763309575a2920696.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论