Ejemplo n.º 1
0
 def new_find_element(self, p_obj):
     try:
         para = p_obj.index("=")
     # print(p_obj[:para])
     # print(p_obj[para+1:])
         if p_obj.startswith('id'):
             return self.driver.find_element_by_id(p_obj[para + 1:])
         elif p_obj.startswith('xpath'):
             return self.driver.find_element_by_xpath(p_obj[para + 1:])
         elif p_obj.startswith('link text'):
             return self.driver.find_element_by_link_text(p_obj[para + 1:])
         elif p_obj.startswith('name'):
             return self.driver.find_element_by_name(p_obj[para + 1:])
         elif p_obj.startswith('tag name'):
             return self.driver.find_element_by_class_name(p_obj[para + 1:])
         elif p_obj.startswith('css selector'):
             return self.driver.find_element_by_css_selector(p_obj[para + 1:])
         elif p_obj.startswith('partial link text'):
             return self.driver.find_element_by_partial_link_text(p_obj[para + 1:])
         else:
             logger.info(p_obj+"该元素没有明确是哪种方式定位,无法定位")
             return None
     except BaseException as err:
         logger.info("元素定位"+p_obj+"失败! 详细信息:" + err)
         return None
Ejemplo n.º 2
0
 def locator_clear(self,p_obj):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MIN_TIME)
     try:
         self.new_find_element(p_obj).clear()
         logger.info('清空输入框:' + p_obj)
     except BaseException as err:
         logger.error('清空输入框:' + p_obj+'失败!详细信息:'+err)
Ejemplo n.º 3
0
 def locator_execute_js(self, p_script):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MIN_TIME)
     try:
         self.driver.execute_script(p_script)
         logger.info('执行java script脚本' + p_script)
     except BaseException as err:
         logger.error('执行java script脚本' + p_script+'失败!详细信息:'+err)
Ejemplo n.º 4
0
 def locator_select(self, p_obj, p_key):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MIN_TIME)
     try:
         Select(self.new_find_element(p_obj)).select_by_visible_text('')
         logger.info('下拉框:' + p_obj + '选择子项:' + p_key)
     except BaseException as err:
         logger.error('下拉框:' + p_obj + '选择子项:' + p_key+'失败!详细信息:'+err)
Ejemplo n.º 5
0
 def framework_setup(self):
     self.launch_browser()
     time.sleep(5)
     logger.info('driver初始化')
     base_url = datastore_configinfo.GLOBAL_VAR_URL
     self.driver.get(base_url)
     self.driver.maximize_window()
     self.driver.implicitly_wait(30)
     logger.info('框架初始化')
Ejemplo n.º 6
0
 def locator_switch_to_window(self, p_window_name):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MIN_TIME)
     try:
         current_window = self.driver.current_window_handle
         windows = self.driver.window_handles
         for switch_to_window in windows:
             if switch_to_window != current_window:
                 self.driver.switch_to.window(p_window_name)
         logger.info('执行new_switch_to_window' + p_window_name)
     except BaseException as err:
         logger.error('执行new_switch_to_window失败!详细信息:'+err)
Ejemplo n.º 7
0
 def locator_is_text_present(self, p_text):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MIN_TIME)
     istext = '//*[contains(.,\''+p_text+'\')]'
     print (istext)
     try:
         self.driver.find_element_by_xpath(istext)
         logger.info('当前页面查找到文字' + p_text)
         return True
     except BaseException as err:
         # print('异常信息:' + err)
         logger.info('当前页面没有查找到文字' + p_text)
         return False
Ejemplo n.º 8
0
 def locator_is_element_present(self, p_obj):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MIN_TIME)
     try:
         obj=self.new_find_element(p_obj)
         if obj==None:
             logger.info('当前页面不存在元素' + p_obj)
             return False
         else:
             logger.info('当前页面存在元素' + p_obj)
             return True
     except BaseException as err:
         # print('异常信息:' + err)
         logger.error('当前页面查找元素' + p_obj+'异常!详细信息:'+err)
         return False
Ejemplo n.º 9
0
 def launch_browser(self):
     browser = datastore_configinfo.GLOBAL_VAR_BROWSER
     if bool(re.search(browser, 'FireFox', re.IGNORECASE)):
         self.driver = webdriver.Firefox()
         logger.info('启动FireFox浏览器')
     elif bool(re.search(browser, 'Chrome', re.IGNORECASE)):
         self.driver = webdriver.Chrome()
         logger.info('启动Chrome浏览器')
     elif bool(re.search(browser, 'IE', re.IGNORECASE)):
         self.driver = webdriver.Ie()
         logger.info('启动IE浏览器')
     elif bool(re.search(browser, 'Safari', re.IGNORECASE)):
         self.driver = webdriver.Safari()
         logger.info('启动Safari浏览器')
     else:
         self.driver = None
         logger.ERROR('错误的浏览器配置参数,启动浏览器失败')
Ejemplo n.º 10
0
    def get_ini_value(cls, p_section, p_key):
        from frameworklib import datastore_configinfo  # 防止交叉引用
        value = None
        ini_file = datastore_log.GLOBAL_VAR_CONFIG_FILE
        config = configparser.ConfigParser()
        if config.read(ini_file).__len__() == 0:
            logger.info('没有找到ini文件 ' + ini_file)
            return value
        else:
            logger.info("成功找到ini文件")
        try:
            value = config.get(p_section, p_key)

        except configparser.NoSectionError:
            logger.info('没有指定的section')
        except configparser.NoOptionError:
            logger.info('没有指定的option')
        finally:
            return value
Ejemplo n.º 11
0
 def locator_send_keys(self, p_obj, p_key):
     time.sleep(datastore_configinfo.GLOBAL_VAR_MID_TIME)
     try:
         self.new_find_element(p_obj).send_keys(p_key)
         # logger.info('向元素:' + p_obj + f' 写入信息:{p_key}')
         if p_key == "\ue007":
             logger.info('向元素:' + p_obj+' 写入信息:回车')
         elif p_key == "\ue015":
             logger.info('向元素:' + p_obj + ' 写入信息:↓')
         else:
             logger.info('向元素:' + p_obj+' 写入信息:' + f"{p_key}")
     except BaseException as err:
         logger.error('向元素:' + p_obj+' 写入信息:'+f"{p_key}"+'失败!详细信息:'+err)
Ejemplo n.º 12
0
 def framework_teardown(self):
     self.driver.quit()
     logger.info('driver销毁')
Ejemplo n.º 13
0
 def get_driver(self):
     logger.info('获取driver')
     return self.driver