def setUp(self):
     self.logger = Logger()
     self.logger.info(
         '######### 发起进攻(  ´-ω ・)▄︻┻┳══━一 ###############################')
     browse = BrowserEngine(self)
     self.driver = browse.open_browser(self)
     BasePage.login(self)
Example #2
0
    def acclick(self, selector):

        el = self.find_element(selector)
        try:
            ActionChains(BrowserEngine(self.driver).driver).click(el).perform()
            Logger().info("The element was acclick.")
        except NameError as e:
            Logger().error("Failed to acclick the element with %s" % e)
Example #3
0
    def click_twice(self, selector):

        el = self.find_element(selector)
        try:
            ActionChains(BrowserEngine(
                self.driver).driver).double_click(el).perform()
            Logger().info("The element \' %s \' was double_clicked." % el.text)
        except NameError as e:
            Logger().error("Failed to click the element with %s" % e)
Example #4
0
    def clear(self, selector):

        el = self.find_element(selector)
        try:
            el.clear()
            Logger().info("Clear text in input box before typing.")
        except NameError as e:
            Logger().error("Failed to clear in input box with %s" % e)
            self.get_warning_img()
Example #5
0
 def chehui(self, selector):
     el = self.find_element(selector)
     try:
         ActionChains(
             BrowserEngine(self.driver).driver).move_to_element_with_offset(
                 el, 242, 83).click().perform()
         Logger().info("The element \' %s \' was moved." % el.text)
     except NameError as e:
         Logger().error("Failed to move to the element with %s" % e)
Example #6
0
    def type(self, selector, text):

        el = self.find_element(selector)
        el.clear()
        try:
            el.send_keys(text)
            Logger().info("Had type \' %s \' in inputBox" % text)
        except NameError as e:
            Logger().error("Failed to type in input box with %s" % e)
            self.get_warning_img()
Example #7
0
 def get_windows_img(self):
     file_path = os.path.dirname(os.path.abspath('.')) + '/screenpicture/'
     rq = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
     screen_name = file_path + rq + '.png'
     try:
         self.driver.get_screenshot_as_file(screen_name)
         Logger().info(
             "Had take screenshot and save to folder : /screenpicture")
         print(screen_name)
     except NameError as e:
         Logger().error("Failed to take screenpicture! {}".format(e))
         self.get_windows_img()
Example #8
0
 def get_windows_img3(self):
     time.sleep(1)
     file_path = os.path.dirname(os.path.abspath('.')) + '/screenshort3/'
     rq = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
     screen_name = file_path + rq + '.png'
     try:
         self.driver.get_screenshot_as_file(screen_name)
         Logger().info(
             "Had take screenshot and save to folder : /screenshort3")
     except NameError as e:
         Logger().error("Failed to take screenshot! %s" % e)
         self.get_windows_img3()
Example #9
0
 def ji_preview(self, selector):
     el = self.find_element(selector)
     try:
         ActionChains(
             BrowserEngine(self.driver).driver).move_to_element_with_offset(
                 el, 0, 68).click().perform()
         time.sleep(1)
         ActionChains(
             BrowserEngine(self.driver).driver).move_to_element_with_offset(
                 el, -90, 164).context_click().perform()
         Logger().info("The element \' %s \' was moved." % el.text)
     except NameError as e:
         Logger().error("Failed to move to the element with %s" % e)
Example #10
0
 def open_browser(self, driver):
     config = configparser.ConfigParser()
     file_path = os.path.dirname(
         os.path.abspath('.')) + '/config/config.ini'
     config.read(file_path)
     browser = config.get("browserType", "browserName")
     Logger().info("You had select %s browser." % browser)
     url = config.get("testServer", "URL")
     Logger().info("The test server url is: %s" % url)
     if browser == "Firefox":
         driver = webdriver.Firefox()
         Logger().info("Starting firefox browser.")
     elif browser == "Chrome":
         driver = webdriver.Chrome(self.chrome_driver_path)
         Logger().info("Starting Chrome browser.")
     elif browser == "IE":
         driver = webdriver.Ie()
         Logger().info("Starting IE browser.")
     driver.maximize_window()  # 窗口最大化
     Logger().info("Maximize the current window.")
     driver.get(url)
     Logger().info("Open url: %s" % url)
     driver.implicitly_wait(10)
     Logger().info("Set implicitly wait 10 seconds.")
     return driver
class TestCase_嵌套公共业务模块的演示(unittest.TestCase):
    #path = os.getcwd()
    #gen_path = os.path.abspath(os.path.dirname(path))
    #data_path = gen_path + '\excelCase\demo测试用例\\功能模块\\PR管理\\PR查询'
    data_path = 'E:/fukun测试项目/YfkSelenium/excelCase/demo测试用例/功能模块/PR管理/PR查询/'
    mylogger = Logger(logger='testCase_嵌套公共业务模块的演示.py').getlog()
    
    def setUp(self):
        self.driver = InitDriver().openBrowser()

    def tearDown(self):
        pass

    def test_嵌套公共业务模块的演示(self):
        caseName = '嵌套公共业务模块的演示.xlsx'
        file_name = os.path.join(self.data_path,caseName )
        try:
            ReadExcel().readExcel(file_name,caseName,self.driver)
        except Exception as e:
            #执行异常抛异常,用于反映在测试报告
            self.mylogger.info('用例 "{}"执行失败'.format(caseName))
            PageElement(self.driver).screen()
            raise
            
            
Example #12
0
    def login_production(self):
        """selenium+chromeheadless获取Token"""
        logger = Logger.get_logger()
        config = ReadConfig()  # 获取配置
        vcc = config.get_userinfo("vcc").split(",")
        username = config.get_userinfo("username").split(",")
        password = config.get_userinfo("password")
        production_url = config.get_url("production_url")

        day = time.strftime("%d")
        chrome_options = Options()
        chrome_options.add_argument('--headless')
        driver = webdriver.Chrome(options=chrome_options)
        driver.implicitly_wait(10)
        driver.get(production_url)
        driver.find_element_by_id("vcc").send_keys(vcc[0])  # 登录
        driver.find_element_by_id("username").send_keys(username[0])
        driver.find_element_by_id("password").send_keys(password)
        driver.find_element_by_id('btn').click()

        manage_cookie = driver.get_cookie('manage_access_token')
        driver.quit()
        manage_cookies = json.dumps(manage_cookie)
        config.update_token("day", day)  # 写入日期和token
        config.update_token("manage_access_token", manage_cookies)
        logger.info("获取线上manage_access_token到配置文件")
Example #13
0
 def click(self, selector):
     el = self.find_element(selector)
     try:
         el.click()
         #Logger().info("The element \' %s \' was clicked." % el.text)
     except NameError as e:
         Logger().error("Failed to enter the element with %s" % e)
Example #14
0
class Test_LoginModule(unittest.TestCase):

    logger = Logger("info").getLog()

    def setUp(self):
        print("开始测试")

    @ddt.file_data(r"C:\Users\loudDD\GitProject\svoc\svoc\public\accout.yaml")
    @ddt.unpack
    def test_login(self, **data):
        try:
            username = data.get("username")
            pwd = data.get("pwd")
            result = data.get("result")
            self.case = LoginPage()
            self.case.login(username, pwd)
            self.assertTrue(result == self.case.driver.current_url)
            self.logger.info("pass")
        except Exception as e:
            self.filename = os.path.join("{0}screenshot.png".format(
                time.strftime("%Y-%m-%d-%H-%M-%S")))
            self.imgpath = os.path.join(os.path.abspath("../"), "screenshot")
            self.path = os.path.join(self.imgpath, self.filename)
            self.case.screen(self.path)
            self.logger.critical(
                (e, "已截图", self.filename))  #需要括号括起来,以达到传入一个元素(多个信息)

    def tearDown(self):
        self.case.driver.quit()
        print('测试结束')
Example #15
0
    def find_element(self, selector):
        element = ''

        if '=>' not in selector:
            return self.driver.find_element_by_id(selector)
        selector_by = selector.split('=>')[0]
        selector_value = selector.split('=>')[1]

        if selector_by == "i" or selector_by == 'id':
            try:
                element = self.driver.find_element_by_id(selector_value)
                Logger().info("Had find the element \' %s \' successful "
                              "by %s via value: %s " %
                              (element.text, selector_by, selector_value))
            except NoSuchElementException as e:
                Logger().error("NoSuchElementException: %s" % e)
                self.get_warning_img()

        elif selector_by == "n" or selector_by == 'name':
            element = self.driver.find_element_by_name(selector_value)
        elif selector_by == "cl" or selector_by == 'class_name':
            element = self.driver.find_element_by_class_name(selector_value)
        elif selector_by == "l" or selector_by == 'link_text':
            element = self.driver.find_element_by_link_text(selector_value)
        elif selector_by == "p" or selector_by == 'partial_link_text':
            element = self.driver.find_element_by_partial_link_text(
                selector_value)
        elif selector_by == "t" or selector_by == 'tag_name':
            element = self.driver.find_element_by_tag_name(selector_value)
        elif selector_by == "c" or selector_by == "css_selector":
            element = self.driver.find_element_by_css_selector(selector_value)
        elif selector_by == "x" or selector_by == 'xpath':
            try:
                element = self.driver.find_element_by_xpath(selector_value)
                Logger().info("Had find the element \' %s \' successful "
                              "by %s via value: %s " %
                              (element.text, selector_by, selector_value))
            except NoSuchElementException as e:
                Logger().error("NoSuchElementException: %s" % e)
                self.get_warning_img()
        elif selector_by == "s" or selector_by == 'selector_selector':
            element = self.driver.find_element_by_css_selector(selector_value)
        else:
            raise NameError("Please enter a valid type of targeting elements.")

        return element
Example #16
0
    def no_warning_text(self):
        from selenium.common.exceptions import NoSuchElementException
        dr = BrowserEngine(self.driver).driver
        #wait = ui.WebDriverWait(dr, 120)
        #wait.until(lambda dr: dr.find_element_by_xpath('/html/body/div[19]/div/h2').is_displayed())
        time.sleep(2)
        try:
            error_mes = dr.find_element_by_xpath(
                '//*[@id="#modals-container"]/div/div/div[2]/div/h2')
        except Exception as e:
            Logger().info("!!!!!!!!!!!Test pass.提示框未出现!!!!!!!!!!!!")

        else:
            BasePage.get_warning_img(self)
            Logger().info(error_mes.text)
            raise ValueError(
                '!!!!!!!!!!!!!!!!!!!!!test false!!!!!!!!!!!!!!!!!!!!!!.出现错误提示框'
            )
Example #17
0
 def warning_text(self):
     from selenium.common.exceptions import NoSuchElementException
     dr = BrowserEngine(self.driver).driver
     wait = ui.WebDriverWait(dr, 30)
     wait.until(lambda dr: dr.find_element_by_xpath(
         '//*[@id="#modals-container"]/div/div/div[2]/div/h2').is_displayed(
         ))
     #error_mes = dr.find_element_by_xpath('/html/body/div[19]/div/h2')
     try:
         error_mes = dr.find_element_by_xpath(
             '//*[@id="#modals-container"]/div/div/div[2]/div/h2')
         Logger().info('!!!!!!!!!Test pass.提示框出现!!!!!!!!!')
     except Exception as e:
         BasePage.get_warning_img(self)
         raise ValueError(
             "!!!!!!!!!!!!!!!!!!!!!!Test fail!!!!!!!!!!!!!!!!!!!!!!!!!!!.提示框未出现",
             format(e))
     else:
         Logger().info(error_mes.text)
         print('test pass')
         return True
Example #18
0
def init_app(app):
    try:
        # 设置utf-8环境
        reload(sys)
        sys.setdefaultencoding('utf-8')

        # 初始化本地日志模块
        cur_path = os.path.dirname(os.path.abspath(__file__))
        log_path = os.path.join(cur_path, 'log')
        if not Logger.init(log_path,
                           log_level=config.APP_LOG_LEVEL,
                           log_name='compare.log'):
            sys.exit(1)

        # 初始化阿里日志服务
        if not AliLog.init(to_ali_log=config.APP_LOG_TO_ALIYUN,
                           log_level=config.APP_LOG_LEVEL,
                           log_project=config.APP_LOG_PROJECT,
                           log_store=config.APP_LOG_STORE,
                           topic=config.APP_LOG_TOPIC,
                           endpoint=config.END_POINT,
                           access_key_id=config.ACCESS_KEY_ID,
                           access_key=config.ACCESS_KEY):
            sys.exit(1)

        # 初始化Tools
        Tools.set_logger(AliLog)

        # 设置gunicorn日志级别
        app.logger.setLevel(config.APP_LOG_LEVEL)
        app.logger.addHandler(Logger.logger)

        # 设置requests日志级别
        logging.getLogger("requests").setLevel(logging.WARNING)

        # 初始化mysql
        # cur_dir = os.path.dirname(os.path.abspath(__file__))
        # ini_dir = os.path.join(cur_dir, 'public')
        if not pymysql_init(logger=AliLog, hosts=config.mysql_ip_list):
            AliLog.error(msg="mysql_init failed")
            return False

        # 启动比价处理模块
        handler = CompareServer(AliLog, redis_handler)
        gevent.spawn(handler.run)
        return True
    except:
        # 启动失败退出进程
        msg = traceback.format_exc()
        print(msg)
        Logger.logger.error(msg)
        sys.exit(1)
Example #19
0
    def login(self):
        config = configparser.ConfigParser()
        file_path = os.path.dirname(
            os.path.abspath('.')) + '/config/config.ini'
        config.read(file_path)

        username = config.get("userInfo", "username")
        Logger().info("username is %s." % username)
        password = config.get("userInfo", "password")
        Logger().info("The password is: %s" % password)
        self.driver.find_element_by_xpath(
            '/html/body/div/div[1]/div[2]/div[2]/form/input[1]').send_keys(
                username)
        Logger().info('输入账户AlphaGo')
        self.driver.find_element_by_xpath(
            '/html/body/div/div[1]/div[2]/div[2]/form/input[2]').send_keys(
                password)
        Logger().info('输入密码123456')
        self.driver.find_element_by_xpath(
            '/html/body/div/div[1]/div[2]/div[2]/button').click()
        Logger().info("点击登录")
        time.sleep(1)
Example #20
0
 def findtext(self, selector, name):
     try:
         el = self.find_element(selector)
         dr = BrowserEngine(self.driver).driver
         # wait = ui.WebDriverWait(dr, 3)  #等待搜索结果显示3秒
         # wait.until(lambda dr: dr.find_element_by_xpath('//*[@id="ioper_03_1_b"]/div/div[1]/div[2]/label[1]/span[2]').is_displayed())
         text = el.text
         if text == name:
             Logger().info('搜索字段为' + text)
         else:
             raise ValueError('搜索字段不匹配!!!!!!!!!!!!!!!!!!')
     except Exception:
         raise ValueError('无搜索结果')
Example #21
0
 def click_close_result(self):
     #calculate_text = 'x=>/html/body/div[3]/p[1]'
     #result_text = 'x=>/html/body/div[12]/div[2]/div/div[1]/p/span'
     dr = BrowserEngine(self.driver).driver
     wait = ui.WebDriverWait(dr, 120)
     wait.until(lambda dr: dr.find_element_by_xpath(
         '//*[@id="#modals-container"]/div/div/div[2]/div').is_displayed())
     try:
         dr.find_element_by_xpath(
             '//*[@id="#modals-container"]/div/div/div[2]/div/div[1]/span'
         ).is_displayed()  #计算结果框:
         link = dr.find_element_by_xpath(
             '//*[@id="#modals-container"]/div/div/div[2]/div/div[1]/span'
         )  #关闭
         BasePage.get_windows_img(self)
         calculate_text = dr.find_element_by_xpath(
             '//*[@id="#modals-container"]/div/div/div[2]/div/div[2]/table/thead/tr[1]/th'
         )  #计算时间
         result_text = dr.find_element_by_xpath(
             '//*[@id="app"]/div[2]/div[2]/p')  #结果条数
         link.click()
         #dr.execute_script('$(arguments[0]).click()', link)
         Logger().info('%s' % calculate_text.text)
         Logger().info('%s' % result_text.text)
         Logger().info('关闭计算结果')
     except Exception as e:
         if dr.find_element_by_xpath(
                 '//*[@id="#modals-container"]/div/div/div[2]/div/div/span'
         ).is_displayed():
             reason_text = dr.find_element_by_xpath(
                 '//*[@id="#modals-container"]/div/div/div[2]/div/div/p')
             Logger().info('%s' % reason_text.text)
             dr.find_element_by_xpath(
                 '//*[@id="#modals-container"]/div/div/div[2]/div/div/span'
             ).click()
             raise ValueError('计算结果为0!!!!!!!!!!!!!!!!!!')
         else:
             raise ValueError('time out!!!!!!!!!!!!!!!!!!')
Example #22
0
    def setUpClass(cls):
        cls.config = ReadConfig()  # 读取配置
        cls.logger = Logger.get_logger()
        vcc = cls.config.get_userinfo("vcc").split(",")
        username = cls.config.get_userinfo("username").split(",")
        password = cls.config.get_userinfo("password")

        d = Driver("Chrome")
        cls.driver = d.selenium_driver()
        t = LoginTestPage(cls.driver)
        t.open()
        t.login_test(vcc[1], username[1], password)  # 登录,切换token

        cls.work_config_page = WorkConfigPage(cls.driver)  # 进入职场配置页面
        cls.work_config_page.enter_work_config_page()
Example #23
0
 def zero_text(self):
     from selenium.common.exceptions import NoSuchElementException
     dr = BrowserEngine(self.driver).driver
     wait = ui.WebDriverWait(dr, 120)
     wait.until(lambda dr: dr.find_element_by_xpath(
         '//*[@id="#modals-container"]/div/div/div[2]/div/div/span').
                is_displayed())
     #error_mes = dr.find_element_by_xpath('/html/body/div[19]/div/h2')
     try:
         error_mes = dr.find_element_by_xpath(
             '//*[@id="#modals-container"]/div/div/div[2]/div/div/p')
         Logger().info('!!!!!!!!!Test pass.计算结果为0!!!!!!!!!')
         link = dr.find_element_by_xpath(
             '//*[@id="#modals-container"]/div/div/div[2]/div/div/span'
         )  #关闭
         link.click()
     except Exception as e:
         BasePage.get_warning_img(self)
         raise ValueError(
             "!!!!!!!!!!!!!!!!!!!!!!Test fail!!!!!!!!!!!!!!!!!!!!!!!!!!!",
             format(e))
Example #24
0
 def click_run(self):
     self.click(self.run)
     Logger().info('点击运行')
Example #25
0
 def __init__(self, selenium_driver):
     self.config = ReadConfig()
     self.logger = Logger.get_logger()
     self.driver = selenium_driver
     self.base_url = self.config.get_url("test_url")
Example #26
0
 def double_model5(self):
     time.sleep(1)
     self.click_twice(self.common_model5)
     Logger().info('进入碰撞求同模型5(连接其它组件)')
Example #27
0
 def double_model4(self):
     time.sleep(1)
     self.click_twice(self.common_model4)
     Logger().info('进入碰撞求同模型4(连接碰撞求同组件)')
Example #28
0
 def double_model3(self):
     time.sleep(1)
     self.click_twice(self.common_model3)
     Logger().info('进入碰撞求同模型3(多数据源)')
Example #29
0
 def double_model1(self):
     time.sleep(1)
     self.click_twice(self.common_model1)
     Logger().info('进入碰撞求同模型1(单数据源)')
Example #30
0
 def click_close_warning(self):
     self.click(self.close_warning)
     time.sleep(1)
     Logger().info('关闭提示框')