Example #1
0
    def test_invest_2_success(self):
        logger.info("用例-正常场景-投资成功-使用到的测试数据")
        #步骤-投资操作-投资页面
        #滚动条
        ele = self.driver.find_element_by_xpath(
            '//a[@href="/Member/index.html"]')
        self.driver.execute_script("arguments[0].scrollIntoView();", ele)
        #点击我的账户
        InvestPage(self.driver).click_my_account()
        #获取可用余额文本值
        PersonalPage(self.driver).get_old_available_balance()
        #点击首页
        PersonalPage(self.driver).click_index()
        #点击抢投标
        IndexPage(self.driver).select_frist_bid()
        #滚动条
        ele = self.driver.find_element_by_xpath(
            '//button[@class="btn btn-special height_style"]')
        self.driver.execute_script("arguments[0].scrollIntoView(false);", ele)
        # 输入金额
        InvestPage(self.driver).bid_amount(invest_d.success_data["amount"])
        # 点击投标
        InvestPage(self.driver).click_bid()

        # # 点击查看并激活
        # InvestPage(self.driver).click_check_activate_button()
        # # 获取新的可用余额文本值
        # PersonalPage(self.driver).get_new_available_balance()

        #断言-判断check是否相等
        self.assertEqual(
            invest_d.success_data["check"],
            InvestPage(self.driver).get_success_msg_from_pageCenter())
Example #2
0
 def setUpClass(cls):
     #日志
     logger.info("准备测试前置")
     # 前置 - 启动浏览器,打开网页
     cls.driver = webdriver.Chrome()
     cls.driver.get('{}/Index/login.html'.format(cd.base_url))
     cls.driver.maximize_window()
Example #3
0
 def test_invest_1_failed_by_wrong_datas(self, data):
     logger.info("异常用例-按钮文本错误信息-使用到的测试用例")
     #步骤
     #输入金额
     InvestPage(self.driver).bid_amount(data["amount"])
     #断言
     self.assertEqual(data["check"],
                      InvestPage(self.driver).get_error_msg_from_button())
Example #4
0
 def setUpClass(cls):
     # 日志
     logger.info("准备测试前置")
     # 前置 - 启动浏览器,打开网页
     cls.driver = webdriver.Chrome()
     cls.driver.get('{}/Index/login.html'.format(cd.base_url))
     cls.driver.maximize_window()
     LoginPage(cls.driver).login(ld.success_data["user"],
                                 ld.success_data["passwd"])
Example #5
0
 def test_login_2_success(self):
     logger.info("用例-正常场景-登录成功-使用到的测试数据")
     #步骤 - 登录操作 - 登录页面
     LoginPage(self.driver).login(ld.success_data["user"],ld.success_data["passwd"])     #测试对象+测试数据
     #断言 - 页面是否存在一个像我的账户之类的元素
     self.assertTrue(IndexPage(self.driver).check_nick_name_exists())   #测试对象+测试数据
     #断言 - url跳转
     #获取当前url网址 是 self.driver.current_url
     self.assertEqual(self.driver.current_url,ld.success_data["check"])   #测试对象+测试数据
Example #6
0
 def test_invest_0_failed_by_wrong_datas(self, data):
     logger.info("异常用例-弹框错误信息-使用到的测试用例")
     #步骤
     # 输入金额
     InvestPage(self.driver).bid_amount(data["amount"])
     # 点击投标
     InvestPage(self.driver).click_bid()
     #断言
     self.assertEqual(
         data["check"],
         InvestPage(self.driver).get_error_msg_from_pageCenter())
Example #7
0
 def save_web_screenshot(self,img_doc):
     # 截图 - 哪一个用例,哪一个页面,哪一步操作导致的失败 + 当前时间
     # 页面_功能_时间.png
     now = time.strftime("%Y-%m-%d %H_%M_%S")
     filepath = "{}_{}.png.".format(img_doc,now)
     try:
         self.driver.save_screenshot(screenshot_dir + "/" + filepath)
         logger.info("网页截图成功,图片存储在:{}".format(screenshot_dir + "/" + filepath))
     except:
         logger.info("网页截屏失败!")
         raise
Example #8
0
    def test_index_success(self):
        logger.info("用例-正常场景-点击第一个投标-使用到的测试数据")
        #步骤-首页 - 点击我的账户
        # IndexPage(self.driver).click_my_account()
        # #步骤-个人页面 - 获取可用余额
        # PersonalPage(self.driver).get_old_available_balance()
        # #步骤-个人页面 - 点击首页
        # PersonalPage(self.driver).click_index()
        #步骤-首页 - 选取页面标进行投资
        IndexPage(self.driver).select_frist_bid()

        #断言-页面是否存在融资投标这个元素
        self.assertTrue(InvestPage(self.driver).check_element_exists())
Example #9
0
    def setUpClass(cls):
        logger.info("准备测试前置")
        #启动浏览器
        cls.driver = webdriver.Chrome()
        cls.driver.get('{}/Index/login.html'.format(cd.base_url))
        cls.driver.maximize_window()
        LoginPage(cls.driver).login(ld.success_data["user"],
                                    ld.success_data["passwd"])
        IndexPage(cls.driver).select_frist_bid()

        # 滚动条-将投标按钮置于页面底端
        ele = cls.driver.find_element_by_xpath(
            '//button[@class="btn btn-special height_style"]')
        cls.driver.execute_script("arguments[0].scrollIntoView(false);", ele)
Example #10
0
 def input_text(self,loc,img_doc,*args):
     #1.等待元素可见
     self.wait_eleVisible(loc,img_doc)
     #2.找元素
     ele = self.get_element(loc,img_doc)        #改动
     #3.再操作
     logger.info("给元素{}输入文本内容:{}".format(loc,args))
     try:
         ele.send_keys(*args)
     except:
         # 日志
         logger.info("元素输入操作失败")
         # 截图
         self.save_web_screenshot(img_doc)
         raise
Example #11
0
 def get_element_attribute(self,loc,attr_name,img_doc):
     # 1.等待元素可见
     self.wait_eleVisible(loc, img_doc)
     #2.找元素
     ele = self.get_element(loc,img_doc)
     #获取属性
     try:
         attr_value = ele.get_attribute(attr_name)
         logger.info("获取元素{}的属性{}值为:{}".format(loc, attr_name,attr_value))
         return attr_value
     except:
         # 日志
         logger.info("获取元素属性值操作失败")
         # 截图
         self.save_web_screenshot(img_doc)
         raise
Example #12
0
 def get_element_text(self,loc,img_doc):
     # 1.等待元素可见
     self.wait_eleVisible(loc, img_doc)
     # 2.找元素
     ele = self.get_element(loc,img_doc)
     #获取文本值
     try:
         text = ele.text
         logger.info("获取元素{}的文本值为:{}".format(loc,text))
         return text
     except:
         #日志
         logger.info("获取元素文本值操作失败")
         #截图
         self.save_web_screenshot(img_doc)
         raise
Example #13
0
 def get_element(self,loc,img_doc=""):
     """
     :param loc:元素定位,以元组形式。(定位类型,定位时间)
     :param img_doc:截图的说明。例如:登录页面_输入用户名
     :return:WebElement对象
     """
     logger.info("查找{}中的{}元素".format(img_doc,loc))
     try:
         ele = self.driver.find_element(*loc)
         return ele
     except:
         #日志
         logger.info("查找元素失败")
         #截图
         self.save_web_screenshot(img_doc)
         raise
Example #14
0
    def wait_eleVisible(self,loc,img_doc="",timeout=30,frequency=0.5):
        logger.info("等待元素 {} 可见".format(loc))      #将logging改成logger
        try:
            #起始等待的时间 datetime
            start = datetime.datetime.now()
            WebDriverWait(self.driver,timeout,frequency).until(EC.visibility_of_element_located(loc))

            #结束等待的时间
            end = datetime.datetime.now()

            logger.info("开始等待时间:{},结束等待时间:{},等待时长为:{}"
                         .format(start,end,end-start))
        except:
            #日志
            logger.exception("等待元素可见失败")
            # 截图 - 哪一个用例,哪一个页面,哪一步操作导致的失败 + 当前时间
            self.save_web_screenshot(img_doc)
            raise
Example #15
0
 def get_alert_text(self,loc,img_doc,timeout=30,frequency=0.1):
     #1.点击元素,导致弹出框出现
     self.click_element(loc,img_doc)
     #2.等待弹出框出现
     WebDriverWait(self.driver,timeout,frequency).until(EC.alert_is_present())
     #3.切换,并用alert接收
     alert = self.driver.switch_to.alert
     time.sleep(3)
     #获取弹出框文本值
     try:
         text = alert.text
         logger.info("获取弹出框文本值为:{}".format(text))
         return text
         alert.accept()
         time.sleep(2)
     except:
         # 日志
         logger.info("获取弹出框文本值操作失败")
         # 截图
         self.save_web_screenshot(img_doc)
         raise
Example #16
0
 def click_element(self,loc,img_doc,timeout=30,frequency=0.5):
     """
     实现了等待元素可见,找元素,然后再去点击元素
     :param loc:元素定位,以元组形式。(定位类型,定位时间)
     :param img_doc:截图的说明。例如:登录页面_输入用户名
     :param timeout:时间
     :param frequency:频率
     :return:
     """
     #1.等待元素可见
     self.wait_eleVisible(loc,img_doc,timeout,frequency)
     #2.找元素
     ele = self.get_element(loc,img_doc)      #改动
     #3.再操作
     logger.info("点击元素{}".format(loc))
     try:
         ele.click()
     except:
         # 日志
         logger.info("点击元素失败")
         # 截图
         self.save_web_screenshot(img_doc)
         raise
Example #17
0
 def tearDownClass(cls):
     # 日志
     logger.info("准备测试后置")
     cls.driver.quit()
Example #18
0
 def test_login_1_failed_by_fail_datas(self,data):
     logger.info("异常用例-页面中心错误信息-使用到的测试用例")
     # 步骤
     LoginPage(self.driver).login(data["user"],data["passwd"])
     #断言
     self.assertEqual(data["check"],LoginPage(self.driver).get_error_msg_from_pageCenter())