Appium学习

发布于:2024-08-25 ⋅ 阅读:(122) ⋅ 点赞:(0)

      一、基础配置

import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

capabilities = {
    'platformName': 'Android',
    'automationName': 'uiautomator2',
    'deviceName': '127.0.0.1:21503',#连接的设备名称
    'appPackage': 'com.tjlianxin.smartcanteen363',#要测试的包名
    'appActivity': 'com.lianxin.smartcanteenposc7.ui.spflash.SpflashActivity',#要测试包名的主活动名称
    'language': 'zh',
    'locale': 'CN'
}

appium_server_url = 'http://localhost:4723/wd/hub'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        wait = WebDriverWait(self.driver, 10)
        el = wait.until(EC.presence_of_element_located((AppiumBy.XPATH, '//*[@text="确定"]')))
        el.click()

if __name__ == '__main__':
    unittest.main()

1.appPackage名可以使用下面的adb命令来查询所有的包名,找到你要测试程序的包名

adb shell pm list packages

2.appActivity界面主活动名称可以使用下面的语句查询包名的主活动界面名称,注意:com.tjlianxin.smartcanteen363需要替换为你测试程序的包名

adb shell dumpsys package com.tjlianxin.smartcanteen363

查询完成之后会显示出很多的数据,找到MAIN或者是LAUNCHER这两个字符,我找出来的是这样的,取出上面的包名的活动名称

      android.intent.action.MAIN:
        e4653d com.tjlianxin.smartcanteen363/com.lianxin.smartcanteenposc7.ui.spflash.SpflashActivity filter 2346502
          Action: "android.intent.action.MAIN"
          Category: "android.intent.category.LAUNCHER"

 那么你得实际活动名就是:

com.lianxin.smartcanteenposc7.ui.spflash.SpflashActivity


网站公告

今日签到

点亮在社区的每一天
去签到