def portrait_update(self, library_name=None, portrait_name=None, sense_type=1, image_=None, import_name=None, identity=None, update_id=None, upload_=True, import_=False, tag=False, **kwargs): """ 创库、添加人像、编辑 :param library_name: 库名 :param portrait_name: 人像名称 :param sense_type: 类型,1:布控库,2:静态库 :param image_: 上传人像名称 :param import_name: 导入名称 :param identity: 身份证号 :param update_id: 编辑身份证号 :param upload_: True: 上传 :param import_: True: 导入 :param tag: True: 人像备注搜索 :param kwargs: por_remark: 备注, por_gender:性别, por_address:地址, por_area: 区域, update_remark: 备注, update_gender:性别, update_address:地址, update_area: 区域, update_name: 人像名称 :return: """ library_name = library_name or get_random_name( name_prefix=ResDefine.name_prefix) portrait_name = portrait_name or get_random_name(name_prefix="por_") por_result = self.create_lib_add_por(library_name=library_name, portrait_name=portrait_name, sense_type=sense_type, image_=image_, import_name=import_name, identity=identity, upload_=upload_, import_=import_, **kwargs) if not por_result: return False result = self.update_portrait(portrait_name=portrait_name, identity=identity, update_id=update_id, tag=tag, sense_type=sense_type, **kwargs) if not result: return False por_result.update({"update_name": kwargs.get("update_name")}) return por_result
def __init__(self, browser="chrome", log=None, time_out=20, test_desired=None, hub_url=None, **kwargs): """ :param browser: 浏览器名称(小写) :param log: 日志句柄 :param time_out: 超时时间(秒) :param hub_url: 远程分布式hub服务地址,有则代表是远程执行 """ self.time_out = time_out self.interval_time = 1 def browser_option(browser_option): browser_option.add_argument('--ignore-certificate-errors') return browser_option if hub_url: if browser == "chrome": desired_capabilities = DesiredCapabilities.CHROME elif browser == "firefox": desired_capabilities = DesiredCapabilities.FIREFOX else: browser = "chrome" desired_capabilities = DesiredCapabilities.CHROME if test_desired: desired_capabilities.update(test_desired) if kwargs.get('name'): desired_capabilities.update({'name': kwargs.get('name')}) else: desired_capabilities.update({"name": browser + str(time.time())}) desired_capabilities.update({ # 时区 'tz': 'Asia/Shanghai', # 视频文件名称 'testFileNameTemplate': kwargs.get('file_name'), }) self.driver = webdriver.Remote(command_executor=hub_url, desired_capabilities=desired_capabilities, options=browser_option(webdriver.ChromeOptions()) ) else: driver_pkg = os.path.join(os.path.dirname(__file__), "..", "driver_pkg") if browser == "firefox": self.driver = webdriver.Firefox(os.path.join(driver_pkg, "geckodriver.exe"), firefox_options=browser_option(webdriver.FirefoxOptions()) ) else: self.driver = webdriver.Chrome(os.path.join(driver_pkg, "chromedriver.exe"), chrome_options=browser_option(webdriver.ChromeOptions()) ) from datetime import datetime # self.driver.implicitly_wait(time_out) self.action = ActionChains(self.driver) self.w_wait = WebDriverWait(self.driver, self.time_out, self.interval_time) if log: self.log = log else: log_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logs') os.mkdir(log_path) if not os.path.exists(log_path) else log_path self.log = get_simple_log(file_name=get_random_name(), path=log_path) self.log.info("浏览器最大化{}".format((datetime.now()).strftime('%Y-%m-%d %H:%M:%S %f'))) self.driver.maximize_window()
def library_update(self, library_name=None, sense_type=1, update_name=None, remark=None): """ 创库、编辑 :param library_name: 库名 :param sense_type: 类型,1:布控库,2:静态库 :param update_name: 编辑库名称 :param remark: 库备注 :return: """ library_name = library_name or get_random_name( name_prefix=ResDefine.name_prefix) library_result = super().create_library(library_name=library_name, sense_type=sense_type) if not library_result or not isinstance(library_result, dict): return False portrait_result = super().update_library(library_name=library_name, sense_type=sense_type, update_name=update_name, remark=remark) if not portrait_result or not isinstance(portrait_result, dict): return False library_result.update(portrait_result) return library_result
def new_dep(self, dep_name=None, root_dep=None): dep_name = dep_name or CF.get_random_name(self.df.name_prefix) el_lst = self.chk_dep(dep_name=root_dep) self.driver.ele_click(el_lst[-1], move=el_lst[0]) self.slt_more_menu(need_menu="创建下级") self.wid.wid_chk_loading() self.driver.ele_input(self.el.new_dep_input, dep_name) self.driver.ele_click(self.el.new_dep_confirm_btn) # time.sleep(0.5) res = self.wid.wid_get_alert_label() if res: self.collect_resource(self.df.key_dep, dep_name) return dep_name
def new_role(self, role_name=None, chg_right_dict='all', enable_role=True): role_name = role_name or CF.get_random_name(self.df.name_prefix) self.driver.ele_click(self.el_role.add_role_button) self.wid.wid_chk_loading() self.driver.ele_input(self.el_role.role_input_name, role_name) self.chg_role_power(chg_right_dict=chg_right_dict) self.driver.ele_click(self.el_role.save_button) create_res = self.wid.wid_get_alert_label() # 判断是否有创建成功的内容 if "新建角色成功" not in create_res: return False self.collect_resource(self.df.key_role, role_name) if enable_role and not self.chg_role_status(role_name=role_name): return False return role_name
def create_lib_add_por(self, library_name=None, portrait_name=None, sense_type=1, image_=None, import_name=None, identity=None, back=False, upload_=True, import_=False, attribute_info=None, del_attribute=False, **kwargs): """ 创建库已经上传人像 :param library_name: 库名 :param portrait_name: 人像名称 :param sense_type: 类型,1:布控库,2:静态库 :param image_: 图片名称 :param import_name: 导入名称 :param identity: 身份证号 :param upload_: 上传 :param import_: 导入 :param attribute_info: 库设置,type:dict , keys: lib_attribute, attribute_values :param del_attribute: True:删除属性 :param kwargs: por_remark: 备注, por_gender:性别, por_address:地址, por_area: 区域 :param back: :return: """ portrait_result = None library_name = library_name or get_random_name( name_prefix=ResDefine.name_prefix) portrait_name = portrait_name or get_random_name(name_prefix="por_") library_result = super().create_library(library_name=library_name, sense_type=sense_type, attribute_info=attribute_info, del_attribute=del_attribute) if not library_result or not isinstance(library_result, dict): return False if upload_: portrait_result = super().add_portrait(library_name=library_name, sense_type=sense_type, portrait_name=portrait_name, image_=image_, identity=identity, **kwargs) if upload_ and import_ and sense_type == 1: self.instance_obj.ele_click(self.lib_por.portrait_back_button, wait_time=1.5) if import_ and sense_type == 1: portrait_result = self.import_portrait(library_name=library_name, sense_type=sense_type, import_name=import_name) self.wid.wid_chk_loading() if not portrait_result: return False if back: self.page_back() if upload_: library_result.update(portrait_result) return library_result