我使用Appium进行手机的自动化测试,写了个简单的Python脚本,代码如下:
from appium import webdriver from time import sleep import unittest import os import sys import warnings class Tests(unittest.TestCase): # 启动app def setUp(self): app = os.path.abspath('/Users/luoyihao/Downloads/AIOffice_1.9.3_UAT.ipa') desired_caps = {} desired_caps['app'] = app desired_caps['platformName'] = 'ios' # 设备系统 desired_caps['platformVersion'] = '13.5.1' # 设备系统版本 desired_caps['deviceName'] = 'iphone XR' # 设备名称 desired_caps['bundleId'] = 'com.chinamobile.AiOffice' # 测试app包名 desired_caps['udid'] = '00008020-001D68C80C99002E' desired_caps['automationName'] = 'XCUITest' # 测试appActivity desired_caps['noReset'] = True self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) def testCase1_MultipleSelectors(self): sleep(3) driver = self.driver el1 = driver.find_element_by_xpath( "//XCUIElementTypeApplication[@name=\"智慧办公\"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther[2]/XCUIElementTypeScrollView/XCUIElementTypeOther[5]/XCUIElementTypeOther[1]") el1.click() sleep(3) text1 = driver.find_element_by_accessibility_id("已选中 0 项").text # print("text1:" + text1) el2 = driver.find_element_by_xpath( "//XCUIElementTypeOther[@name=\"投诉建议\"]/XCUIElementTypeOther[3]/XCUIElementTypeOther[1]") el2.click() el3 = driver.find_element_by_xpath( "//XCUIElementTypeOther[@name=\"投诉建议\"]/XCUIElementTypeOther[3]/XCUIElementTypeOther[2]") el3.click() text2 = driver.find_element_by_accessibility_id("已选中 2 项") if text2: text2 = text2.text # print("text2:" + text2) sleep(5) self.assertIsNone(text2,'multiple selectors case error') def testCase2_ButtonChange(self): driver = self.driver def tearDown(self): driver = self.driver self.driver.quit() if __name__ == '__main__': warnings.filterwarnings('ignore') f = open('log.txt', 'a') sys.stdout = f sys.stderr = f suite = unittest.TestSuite() suite.addTest(Tests('testCase1_MultipleSelectors')) suite.addTest(Tests('testCase2_ButtonChange')) unittest.TextTestRunner(verbosity=2).run(suite) # 一种简单打印测试报告的方式,执行数,成功数,失败数