【Appium】如何配置真机连接及定位元素

目录

一、真机配置

1、使用数据线连接真机与电脑。

2、开启开发者模式

3、开启USB调试

二、编写脚本

1、修改deviceName

2、修改platformVersion

3、appPackage和appActivity的获取

4、定位计算器界面元素

5、运行脚本


一、真机配置

1、使用数据线连接真机与电脑。

选择传输文件方式。

2、开启开发者模式

举我目前手上的两手机为例,其他的应该大同小异

  • 华为手机:手机-->设置-->'关于手机'-->版本号连续点4次,开启之后手机界面会提示你开启了开发者模式了。然后在设置里就会出现'开发人员选项'了,我的是在'关于手机'上方

  • 小米手机:手机-->设置-->我的设备-->全部参数-->MIUI版本号连续点5次,就会开启开发者模式了,多点几次会有提示的。开启之后,开发者选项的位置是在手机-->设置-->更多设置-->开发者选项。

如下图以我的小米手机为例:

3、开启USB调试

进入开发者模式选项,打开USB调试、USB安装、USB调试(安全设置),会提示你授权操作,记得同意一下。

二、编写脚本

同样采用我们上一篇的计算器脚本,将其中模拟器的信息换成真机。脚本使用安卓版本6.0

1、修改deviceName

通过adb devices获取

2、修改platformVersion

查看手机安卓版本号

3、appPackageappActivity的获取

手机端打开计算器,然后电脑端在cmd中输入

安卓8.0以前用:adb shell dumpsys activity activities | findstr mFocusedActivity

安卓8.0以后用adb shell dumpsys activity activities | findstr mResume

4、定位计算器界面元素

1、首先在手机端打开计算器,使手机界面停留在计算器界面。

2、电脑端打开SDK包里的tool文件夹下的uiautomatorviewer.bat工具,该工具只支持安卓8.0以下,8.0以上可使用Appium inspector。

5、点击第二个按钮,会自动抓取手机端界面。

6、由于我们之前打开了计算器,所以就能直接显示计算器界面了。

7、这时候我们点击界面中想要定位的元素,右边就会显示出相应参数,比如我们想要用id定位,就可以直接复制下面的id信息了。

5、运行脚本

由于真机连接可能会有延迟,所以可以在元素定位前面加上time.sleep(3)延迟语句。

运行之前记得开启Appium服务器

运行时手机端会提示安装appium settings,需要同意一下。

代码如下:

# V1.0 实现手机端计算器自动化测试:使用常量进行参数传递
# 导入appium类库
from appium.webdriver.webdriver import WebDriver
from selenium.webdriver.common.by import By
import time

# 定义一个字典类型,存放参数设置
caps = {
    'automationName': 'UiAutomator2',
    'platformName': 'Android',
    'platformVersion': '6.0',
    'deviceName': 'VLG4C16C17009881',
    'appPackage': 'com.android.calculator2',
    'appActivity': '.Calculator'}
# 输入Appium访问路径并传入参数
driver = WebDriver('http://127.0.0.1:4723/wd/hub', caps)
# 传入相关测试数据,实现7+8的步骤
time.sleep(3)
driver.find_element(By.ID, 'com.android.calculator2:id/digit7').click()
driver.find_element(By.ID, 'com.android.calculator2:id/plus').click()
driver.find_element(By.ID, 'com.android.calculator2:id/digit8').click()
driver.find_element(By.ID, 'com.android.calculator2:id/equal').click()

time.sleep(3)
driver.quit()
<think>好的,我现在需要帮用户解决在未安装Appium的情况下连接真机的问题。首先,用户提到他们想在没有安装Appium的情况下配置连接真机,这可能有些矛盾,因为通常Appium是需要安装的。但也许用户的意思是,他们不想通过常规的安装方式,或者想在未完成安装的情况下进行配置? 先仔细看用户提供的引用内容。引用1提到安装Appium后设置环境变量Appium_Home为安装路径。引用2和3指出WebDriverAgent的位置在不同版本的Appium中可能不同。这说明用户可能在安装过程中遇到了问题,或者想跳过安装步骤直接配置? 接下来,我需要考虑,如果用户没有安装Appium,是否有可能使用其他工具或方法来达到类似Appium的功能?比如,直接使用adb命令或者别的自动化框架?或者用户可能误解了安装步骤,想手动配置某些组件? 可能的解决方案包括:1. 使用Appium的独立组件,如WebDriverAgent,而无需完整安装Appium。2. 通过其他工具如adb配合真机调试。不过,Appium本身是必须安装的,否则无法使用其服务器功能。但用户可能没有正确安装,所以需要检查安装步骤是否正确,或者是否缺少环境变量配置。 根据引用中的信息,用户可能已经尝试安装Appium但未成功,导致连接真机失败。例如,环境变量未正确设置,或者WebDriverAgent的路径不正确。此时,用户需要确保Appium正确安装,并配置好相关路径,如Android SDK的环境变量,以及Appium_Home的设置。 另外,用户可能需要手动启动Appium服务,或者使用Appium Desktop的便携版本,避免系统级的安装。或者使用npm全局安装Appium,并确保依赖项如Node.js已安装。 总结可能的解决步骤:1. 确保Node.js和npm已安装。2. 通过npm安装Appium。3. 配置Android SDK环境变量。4. 检查WebDriverAgent路径是否正确。5. 使用adb devices确认真机连接。6. 启动Appium服务器并进行测试。 需要将这些步骤详细说明,并引用用户提供的路径信息,确保正确性。同时,提醒用户即使未“安装”Appium,但通过npm全局安装也是一种安装方式,可能需要澄清用户的真实需求。</think>### 未安装Appium连接真机配置方案 若未安装Appium但需要连接真机进行自动化测试,本质仍需依赖Appium的核心组件或替代工具。以下是两种可行方案: --- #### **方案一:使用Appium独立组件(需部分依赖)** 1. **安装必要基础环境** - 安装Node.js(含npm):用于运行JavaScript工具链[^1] - 配置Android SDK环境变量:确保`ANDROID_HOME`指向SDK路径,并添加`platform-tools`到系统PATH 2. **手动启动Appium服务** - 通过npm临时安装Appium并启动(无需全局安装): ```bash npx appium ``` - 此命令会动态下载Appium依赖并启动服务,但需保持终端运行 3. **直接使用adb连接真机** - 通过USB连接手机,开启开发者模式与USB调试 - 终端执行`adb devices`验证设备识别,输出示例: ```bash List of devices attached ABCDEFG123456 device ``` 4. **编写测试脚本直连设备** 使用Python的`webdriver`库直接指定设备UDID和Capabilities: ```python from appium import webdriver capabilities = { "platformName": "Android", "deviceName": "Your_Device_UDID", "appPackage": "com.example.app", "appActivity": ".MainActivity" } driver = webdriver.Remote("http://localhost:4723/wd/hub", capabilities) ``` --- #### **方案二:绕过Appium使用纯ADB+UIAutomator2** 1. **adb基础操作** - 安装APK:`adb install app.apk` - 启动Activity:`adb shell am start -n com.example.app/.MainActivity` - 屏幕截图:`adb exec-out screencap -p > screen.png` 2. **UIAutomator2元素定位** - 获取界面元素XML结构: ```bash adb shell uiautomator dump /sdcard/window_dump.xml adb pull /sdcard/window_dump.xml ``` - 通过坐标模拟点击: ```bash adb shell input tap x y ``` --- ### **关键配置验证** 1. **环境变量检查** - 确保`ANDROID_HOME`指向SDK路径(如`C:\Android\Sdk`) - 验证adb可用性:`adb version`应返回版本号 2. **真机授权处理** - USB连接后需在手机上点击“允许调试” - 部分厂商设备需额外安装驱动(如华为HiSuite) ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BetterFate!

爱你哦!

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

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

打赏作者

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

抵扣说明:

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

余额充值