class InitDriver(object): def __init__(self): self.log4py = LoggingController() self.run_config = InitConfiger() self.cmd = Cmd() self.service_path = FilePathUtil().get_service_path() self.config = ConfigController(self.service_path) def init_driver(self): desired_caps_dict = self.run_config.get_desired_caps_dict() sno_list = self.cmd.get_device_list() port = 4723 print(sno_list) if not len(sno_list): return None for sno in sno_list: # self.cmd.set_serialno(sno) os.system('appium -p %d' % port) self.cmd.serialno = sno desired_caps = desired_caps_dict[sno] url = 'http://127.0.0.1:%d/wd/hub' % port num = 0 while num <= 5: try: driver = webdriver.Remote(url, desired_caps) except Exception as e: self.log4py.error( "连接appium服务,实例化driver时出错,尝试重连...({})".format(num)) num = num + 1 continue self.log4py.info("webdriver连接信息:{}:{}".format( url, str(desired_caps))) while True: if self.cmd.port_is_used(port): port = port + 1 else: break print(port) return driver
class InitConfiger(object): def __init__(self): self.cmd = Cmd() self.path = FilePathUtil().get_config_run_path() self.config = ConfigController(self.path) self.log4py = LoggingController() self.dev_info = DeviceInfo().get_infos_as_dict() def get_desired_caps_dict(self): section = "desired_caps" desired_caps_dict = {} sno_list = self.cmd.get_device_list() if not len(sno_list): return None for sno in sno_list: # self.cmd.set_serialno(sno) self.cmd.serialno = sno if int(float(self.dev_info[sno]["os_version"][0])) < 5: desired_caps_dict[sno] = { "platformName": "Android", "platformVersion": self.dev_info[sno]["os_version"], "deviceName": sno, "appPackage": self.config.get(section, "appPackage"), "appActivity": self.config.get(section, "appActivity"), "unicodeKeyboard": True, "resetKeyboard": True, "noReset": True, "automationName": "Uiautomator1" } else: desired_caps_dict[sno] = { "platformName": "Android", "platformVersion": self.dev_info[sno]["os_version"], "deviceName": sno, "appPackage": self.config.get(section, "appPackage"), "appActivity": self.config.get(section, "appActivity"), "unicodeKeyboard": True, "resetKeyboard": True, "noReset": True, "automationName": "Uiautomator2" } return desired_caps_dict def get_host_port(self): host_port_list = ['127.0.0.1:4723', '127.0.0.1:4724'] return host_port_list
def __init__(self): self.log4py = LoggingController() self.run_config = InitConfiger() self.cmd = Cmd() self.service_path = FilePathUtil().get_service_path() self.config = ConfigController(self.service_path)
def __init__(self): self.cmd = Cmd() self.path = FilePathUtil().get_config_run_path() self.config = ConfigController(self.path) self.log4py = LoggingController() self.dev_info = DeviceInfo().get_infos_as_dict()
from common.base.Command import Cmd from common.utils.FileClearUtil import FileClearUtil from common.utils.FilePathUtil import FilePathUtil from page.page_obj import page_obj from page_intel.share_page_obj import share_page_obj from page_ddox.set_ll_obj import set_ll_page_obj from common.utils.LoggingUtil import LoggingController from poco.drivers.android.uiautomation import AndroidUiautomationPoco from common.utils.DateTimeUtil import DateTimeManager from common.baseapi.BaseAppiumApi import BaseAppiumApi from common.base.BroadcastCommand import BroadcastCommand DATE_FORMAT = '%Y-%m-%d %H:%M:%S' driver = None cmd = Cmd() bccmd = BroadcastCommand() fc = FileClearUtil() fp = FilePathUtil() dt = DateTimeManager() log = LoggingController() def pytest_addoption(parser): parser.addoption("--cmdopt", action="store", default="device_info", help=None) @pytest.fixture
def __init__(self, driver): self.adb = Cmd() self.driver = driver self.log4py = LoggingController() self.ta = TouchAction() self.pauseTime = 5
def __init__(self): self.cmd = Cmd() self.log4py = LoggingController()
class DeviceInfo(object): def __init__(self): self.cmd = Cmd() self.log4py = LoggingController() def get_infos_as_dict(self): try: info = {} lists = self.cmd.get_device_list() if not len(lists): self.log4py.info("无任何设备处于连接状态") return None self.log4py.info("开始获取设备信息.....") i = 1 for sno in lists: # self.cmd.set_serialno(sno) self.cmd.serialno = sno brand, model, os_version, dpi, screen_size, name = \ self.get_device_info() info[sno] = { "brand": brand, "model": model, "os_version": os_version, "dpi": dpi, "screen_size": screen_size, "name": name } self.log4py.info("%d.设备连接信息:%s-%s" % (i, sno, info[sno])) # print(info[sno]) i += 1 self.log4py.info("设备信息获取完毕,设备总数量:%s" % len(lists)) # print(info) # print(len(lists)) return info except Exception as e: print(e) self.log4py.error("获取设备信息时发生错误") return None def get_device_info(self): """ 获取设备信息 """ try: name = self.cmd.get_device_sno() brand = self.cmd.get_device_brand() model = self.cmd.get_device_model() os_version = self.cmd.get_android_os_version() ram = self.cmd.get_device_ram() dpi = self.cmd.get_device_dpi() # ip = self.cmd.get_device_ip() screen_size = self.cmd.get_screen_size() return brand, model, os_version, dpi, screen_size, name except Exception as e: self.log4py.error("Get device info happen ERROR :" + str(e)) return None