『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略

1 Appium-Inspector简介

  • Appium-InspectorAppium Desktop中自带的一个查看元素的工具;
  • 打开这个工具的前提下appium的服务是启动了;
  • 另外需要注意的是Appium最新安装方法是使用npm安装的,而不是Appium GUI方式安装,那么这里目前是没有Appium Desktop,也就没有Appium-Inspector工具了;
  • 所以需要单独安装Appium-Inspector

2 Appium Desktop中的Appium-Inspector

  • 如果是使用的Appium GUI方式安装的appium,那么就有Appium Desktop
  • Appium Desktop安装完成之后,双击打开:
    在这里插入图片描述
  • 点击 Start Server 按钮,启动 Appium server,并开启监听本机 4723 端口;
    在这里插入图片描述
  • 并且通过如下两种方式启动Appium Inspector
    在这里插入图片描述
  • 这种方式只有在旧版本的appium才有,但是我们用的最新版本的,需要单独安装了。

3 安装Appium-Inspector

  • 安装地址为:Appium-Inspector
    在这里插入图片描述
  • 选择对应系统的版本即可,我的是windows版本:
    在这里插入图片描述
  • 下载后双击Appium-Inspector-windows-2023.11.1.exe安装即可,安装完如下:
    在这里插入图片描述

4 Appium-Inspector网页版

5 Appium-Inspector界面说明

5.1 Appium Server配置

  • Appium Server主要是对IP、端口和地址进行设置,其中地址默认配置/wd/hub即可;
  • 参数如下:
Remote Host:127.0.0.1
Remote Port:4723
Remote Path:/wd/hub # 注意如果报错,请把/wd/hub改为/

在这里插入图片描述

5.2 Select Cloud Providers

  • 点击Select Cloud Providers则会出现云服务商的选择界面;

在这里插入图片描述

  • 选择一个后会出现该服务商的标签:
    在这里插入图片描述
  • 这些云服务都是国外的,基本用不上,一般只连本地的server即可。

5.3 Advanced Settings

  • Advanced Settings为高级配置;
    在这里插入图片描述

  • 一般是设置代理的可不用,其中:

Allow Unauthorized Certificates:允许未经授权的证书
Use Proxy:使用代理服务器

5.4 Desired Capabilities配置

  • Desired Capabilities配置这个和之前使用脚本启动道理是一样的;
  • 一些配置参数如下:
capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='emulator-5554',
    appPackage='com.tencent.mobileqqi',
    appActivity='com.tencent.mobileqq.activity.SplashActivity',
    language='en',
    locale='US'
)
  • 直接在对应的输入框中输入以上内容即可:
    在这里插入图片描述

5.5 Saved Capability Sets

  • 可以对已经配置好的进行保存操作:
    在这里插入图片描述
  • 保存后下次启动直接就可以用这个配置了:
    在这里插入图片描述

5.6 Attach to Session

  • 如果Appium已经连接手机的session了,那么直接选择Session ID,加入就行了,不需要在进行配置了:
    在这里插入图片描述

6 Start Session

  • 前边所有的配置做好好,直接点击界面中的Start Session,即可进入如下界面:
    在这里插入图片描述

7 Inspector界面图标说明:

  • 界面上从做到右图标如下:
    在这里插入图片描述
  • 详细说明如下:
图标名称说明
1Show Element Handles是否显示元素句柄
2Select Elements选择元素定位
3Tap/Swipe By Coordinates按坐标点击/滑动
4Download Screenshot下载屏幕截图
5Press Back Button按下后退按钮
6Press Home Button按主页按钮
7Press App Switch Button按应用程序切换按钮
8Native App Mode本机应用程序模式
9Web/Hybrid App ModeWeb/混合应用程序模式
10Refresh Source & Screenshot刷新源和屏幕截图
11Search for element搜索元素
12Start Recording开始录制
13Quit Session & Close Inspector退出会话并关闭检查器

8 App Source

  • App Source是以XML格式显示界面上的控件布局;
  • 如图所示:
    在这里插入图片描述

9 Selected Element

  • Selected Element是对选择的元素进行详细的信息显示;

  • 比如我们选择的是用户名输入框,右边显示如下:

在这里插入图片描述

  • 然后我们在右边的输入框中输入内容,点击发送后,可以直接将内容发送到应用程序的用户名输入框:
    在这里插入图片描述
    在这里插入图片描述

  • 右边这些属性包含了元素的accessibility idxpathelementIdpackageclass等信息,在后续我们写代码的时候,使用元素定位的时候可以用到这些属性信息。

10 Session Information

  • Session Information是关于这个Session 的详细信息,如下:
    在这里插入图片描述

  • 最下边显示了这个session的详细代码信息,你如java代码:
    在这里插入图片描述

// This sample code supports Appium Java client >=9
// https://github.com/appium/java-client
import io.appium.java_client.remote.options.BaseOptions;
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import java.time.Duration;
import java.util.Arrays;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;

public class SampleTest {

  private AndroidDriver driver;

  @Before
  public void setUp() {
    var options = new BaseOptions()
      .amend("platformName", "Android")
      .amend("appium:automationName", "uiautomator2")
      .amend("appium:deviceName", "emulator-5554")
      .amend("appium:appPackage", "com.tencent.mobileqqi")
      .amend("appium:appActivity", "com.tencent.mobileqq.activity.SplashActivity")
      .amend("appium:language", "en")
      .amend("appium:locale", "US")
      .amend("appium:ensureWebviewsHavePages", true)
      .amend("appium:nativeWebScreenshot", true)
      .amend("appium:newCommandTimeout", 3600)
      .amend("appium:connectHardwareKeyboard", true);

    private URL getUrl() {
      try {
        return new URL("http://127.0.0.1:4723");
      } catch (MalformedURLException e) {
        e.printStackTrace();
      }
    }

    driver = new AndroidDriver(this.getUrl(), options);
  }

  @Test
  public void sampleTest() {

  }

  @After
  public void tearDown() {
    driver.quit();
  }
}

  • 比如python代码信息:
# This sample code supports Appium Python client >=2.3.0
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python

from appium import webdriver
from appium.options.common.base import AppiumOptions
from appium.webdriver.common.appiumby import AppiumBy

# For W3C actions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInput

options = AppiumOptions()
options.load_capabilities({
	"platformName": "Android",
	"appium:automationName": "uiautomator2",
	"appium:deviceName": "emulator-5554",
	"appium:appPackage": "com.tencent.mobileqqi",
	"appium:appActivity": "com.tencent.mobileqq.activity.SplashActivity",
	"appium:language": "en",
	"appium:locale": "US",
	"appium:ensureWebviewsHavePages": True,
	"appium:nativeWebScreenshot": True,
	"appium:newCommandTimeout": 3600,
	"appium:connectHardwareKeyboard": True
})

driver = webdriver.Remote("http://127.0.0.1:4723", options=options)


driver.quit()
  • 26
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Appium自动化测试用例可以通过使用Appium Inspector进行录制和生成。首先,需要配置待测应用并连接移动设备成功后,在Appium Inspector中点击录制按钮开始录制用例。在录制过程中,可以通过点击操作选中元素,并进行相应的操作,如点击、输入等。录制完成后,可以生成用例脚本。\[3\] 生成的用例脚本可以包含以下内容: - 使用driver.find_element方法找到元素,并使用相应的操作方法进行操作,如点击、输入等。例如:el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="OS") el1.click() - 可以对生成的用例脚本进行优,添加capability信息、初始webdriver、添加setup和teardown、添加隐式等待和noReset属性等,以增强用例的稳定性。\[3\] 此外,还可以添加断言来验证测试结果的准确性。通过添加断言,可以判断测试过程中的期望结果是否与实际结果一致,从而判断测试用例是否通过。\[3\] 总结来说,Appium自动化测试用例可以通过使用Appium Inspector进行录制和生成,然后可以对生成的用例脚本进行优和添加断言来增强用例的稳定性和准确性。 #### 引用[.reference_title] - *1* *2* *3* [【App自动化测试】(三)使用Appium进行自动用例录制](https://blog.csdn.net/gjj920318/article/details/127996223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

虫无涯

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值