Appium中的api(一)

目录

1.基础python代码准备

1--参数的一些说明

2--python内所要编写的代码

解释

2.如何获取包名和界面名

1-api

2-完整代码

代码解释

3.如何关闭驱动连接

4.安装卸载app

1--卸载

2--安装

5.判断app是否安装

6.将应用放到后台在切换为前台的时间

7.UIAutomatorViewer的使用

1--找到uiautomatorviewer.bat

2--获取信息

3--一些说明


1.基础python代码准备

1--参数的一些说明

platformName='Android',# 名字,这个这就是这个

automationName='uiautomator2', # 这个是使用的驱动

deviceName='Android', # 这个是设备名字可以随意

appPackage='com.android.settings', # 这个是你要启动的包名

appActivity='.Settings', # 这个是你要启动的活动单元名字

language='en',

locale='US',

udid="127.0.0.1:21503" # 这个是要连接的设备的ip和端口号 我用的是逍遥模拟器 端口号为 21503

2--python内所要编写的代码

python 复制代码
import time
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName='Android', # 名字,这个这就是这个
    automationName='uiautomator2', # 这个是使用的驱动
    deviceName='Android',  # 这个是设备名字可以随意
    appPackage='com.android.settings',  # 这个是你要启动的包名
    appActivity='.Settings',    # 这个是你要启动的活动单元名字
    language='en',
    locale='US',
    udid="127.0.0.1:21503"  # 这个是要连接的设备的ip和端口号    我用的是逍遥模拟器  端口号为 21503
)

appium_server_url = 'http://localhost:4723'

class MyElementUiTest(unittest.TestCase):

    # 前置处理
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))


    # 后置处理  关闭连接会话session
    def tearDown(self) -> None:
        self.driver.quit()


    # test
    def test_find(self):
        

        time.sleep(2)
解释

这里有个测试类叫 MyElementUiTest,它继承了 unittest.TestCase。这意味着你可以用 Python 的单元测试框架来组织测试代码。

setUp 方法里,我们告诉 Appium 怎么启动一个应用。这里用到了一个叫 capabilities 的字典,里面包含了启动应用需要的信息,比如说是 Android 系统,用的是 UiAutomator2 驱动,要测试的是系统设置应用 (com.android.settings),以及一些其他的配置信息。

tearDown 方法是在每次测试之后运行的,主要是用来清理环境,比如关掉之前打开的应用。

test_find 方法是个具体的测试用例。目前这个方法里只有一个 time.sleep(2),作用是让脚本暂停两秒钟。这通常是为了给应用一点时间去加载或者是为了避免太快的操作导致的问题。但是最好还是用更精确的方法去等待元素出现,而不是硬编码地等待固定时间。

2.如何获取包名和界面名

1-api

# 获取当前界面的包名和界面名

print("当前界面信息")

print(self.driver.current_activity)

# 获取当前界面的包名

print(self.driver.current_package)

2-完整代码

python 复制代码
import time
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName='Android', # 名字,这个这就是这个
    automationName='uiautomator2', # 这个是使用的驱动
    deviceName='Android',  # 这个是设备名字可以随意
    appPackage='com.android.settings',  # 这个是你要启动的包名
    appActivity='.Settings',    # 这个是你要启动的活动单元名字
    language='en',
    locale='US',
    udid="127.0.0.1:21503"  # 这个是要连接的设备的ip和端口号    我用的是逍遥模拟器  端口号为 21503
)

appium_server_url = 'http://localhost:4723'

class MyElementUiTest(unittest.TestCase):

    # 前置处理
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))


    # 后置处理  关闭连接会话session
    def tearDown(self) -> None:
        self.driver.quit()


    # test
    def test_find(self):
        # 获取当前界面的信息
        myPackageInfo =  self.driver.current_package;
        print(myPackageInfo)
        # 获取当前页面的包名
        myActivityInfo = self.driver.current_activity
        print(myActivityInfo)


        time.sleep(2)
代码解释
  • capabilities 字典中包含了启动一个Android应用所需的配置信息,如平台名称(platformName)、自动化框架(automationName)、设备名称(deviceName)、应用程序包名(appPackage)、应用程序启动Activity(appActivity)等。

  • appium_server_url 是运行Appium服务器的URL地址。

  • setUp方法中,使用webdriver.Remote函数来启动一个与Appium服务器的新会话,并通过提供的能力和选项来配置它。

  • tearDown方法在每个测试用例执行完毕后调用,用来关闭与Appium服务器的会话。

  • test_find方法中,首先打印了当前界面的应用程序包名(current_package),然后打印了当前活动的名称(current_activity)。最后,为了让测试更加稳定,增加了一个两秒的延时(time.sleep(2))。

3.如何关闭驱动连接

**driver.quit()**关闭的是当前连接

4.安装卸载app

1--卸载

self.driver.remove_app("要移除app的包名")

2--安装

self.driver.install_app("要安装的app路径名")

5.判断app是否安装

self.driver.is_app_installed("要判断的app包名")

6.将应用放到后台在切换为前台的时间

self.driver.background_app(5)

7.UIAutomatorViewer的使用

1--找到uiautomatorviewer.bat

找到android的SDK目录下的tools ===》bin ===》uiautomatorviewer.bat

2--获取信息

3--一些说明

相关推荐
Beekeeper&&P...19 分钟前
web钩子什么意思
前端·网络
DanielYQ21 分钟前
LCR 001 两数相除
开发语言·python·算法
啵咿傲30 分钟前
重绘&重排、CSS树&DOM树&渲染树、动画加速 ✅
前端·css
前端Hardy33 分钟前
HTML&CSS:数据卡片可以这样设计
前端·javascript·css·3d·html
流烟默36 分钟前
CSS中Flex布局应用实践总结
前端·css·flex布局
vener_1 小时前
LuckySheet协同编辑后端示例(Django+Channel,Websocket通信)
javascript·后端·python·websocket·django·luckysheet
草字1 小时前
uniapp input限制输入负数,以及保留小数点两位.
java·前端·uni-app
封步宇AIGC1 小时前
量化交易系统开发-实时行情自动化交易-4.2.3.指数移动平均线实现
人工智能·python·机器学习·数据挖掘
互联网杂货铺1 小时前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
施努卡机器视觉1 小时前
电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现
运维·机器人·自动化