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
Beispiel #2
0
    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
Beispiel #4
0
 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
Beispiel #5
0
 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