1.yaml文件需要pip安装pyyaml
desired_caps.yaml文件在里面放置了如下内容,这个文件内容需要注意,冒号后面有空格,需要检查空格个数是否一个,参数是否都正确;
platformName: Android platformVersion: '5.1' deviceName: 127.0.0.1:62025 appPackage: im2510.hollcon.com.im2510 appActivity: .activity.LoginActivity noRest: True ensureWebviewsHavePages: True ip: 127.0.0.1 port: 4723
在connect文件中放置了如下内容,定义了android_driver,在下面用的时候直接调用了这个py文件中的android_driver,这里需要检查地址调用路径是否正确,可以调试查看caps取值是否正确,不对的项进行修改:
from appium import webdriver import os import yaml # 项目根目录路径,即android-ui-autotest文件夹的路径 BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # capabilities配置文件desired_caps.py路径 DESIRED_CAPS_YAML_PATH = BASE_PATH + '\ck\desired_caps.yaml' print(BASE_PATH) print(DESIRED_CAPS_YAML_PATH) def android_driver(): # 从desired_caps.yaml读取driver配置数据 stream = open(DESIRED_CAPS_YAML_PATH, 'r') data = yaml.load(stream, Loader=yaml.FullLoader) caps = {'platformName': data['platformName'], 'platformVersion': data['platformVersion'], 'deviceName': data['deviceName'], 'appPackage': data['appPackage'], 'appActivity': data['appActivity']} driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', caps) driver.implicitly_wait(8) return driver
在新的login.py中对connect.py进行调用,调用后系统运行起来了,并按照下面的操作进行了登录;
from selenium.webdriver.common.by import By import time from connect import android_driver a = android_driver() time.sleep(5) a.find_element(By.ID, "im2510.hollcon.com.im2510:id/edit_account").send_keys("admin") time.sleep(2) a.find_element(By.ID, "im2510.hollcon.com.im2510:id/edit_password").send_keys("123") time.sleep(2) a.find_element(By.ID, "im2510.hollcon.com.im2510:id/bt_login_land").click() time.sleep(10)