示例#1
0
 def get_pageUrl(self,model_name=''):
     try:
         return self.driver.current_url
     except:
         logger.exception('获取页面URL失败')
         self._get_screenShot(model_name)
         raise
示例#2
0
 def wait_eleVisibility(self,locator,wait_time=20,poll_frequency=0.5,model_name=''):
     try:
         logger.info('等待{0}中元素可见'.format(model_name))
         WebDriverWait(self.driver,wait_time,poll_frequency).until(EC.visibility_of_element_located(locator))
     except:
         logger.exception('等待元素可见失败')
         self._get_screenShot(model_name)
         raise
示例#3
0
 def _get_screenShot(self,model_name):
     screen_path=screenShot_dir + '\\{0}_{1}.png'.format(model_name,time.strftime("%Y%m%d_%H%M%S"))
     try:
         self.driver.get_screenshot_as_file(screen_path)
         logger.info('截图成功,截图为:',screen_path)
     except:
         logger.exception('截图操作失败')
         raise
示例#4
0
 def get_eleAttribute(self,locator,attribute,model_name=''):
     ele = self.find_ele(locator)
     try:
         logger.info('获取{0}的元素属性'.format(model_name))
         return ele.get_attribute(attribute)
     except:
         logger.exception('获取元素属性失败')
         self._get_screenShot(model_name)
         raise
示例#5
0
 def get_text(self,locator,model_name=''):
     ele = self.find_ele(locator)
     try:
         logger.info('获取{0}文本信息'.format(model_name))
         return ele.text
     except:
         logger.exception('获取当前文本信息失败')
         self._get_screenShot(model_name)
         raise
示例#6
0
 def move_IntoView(self,locator,model_name=''):
     ele = self.find_ele(locator)
     try:
         logger.info('将{0}的元素移动到可见区域'.format(model_name))
         self.driver.execute_script("arguments[0].scrollIntoView()",ele)
     except:
         logger.exception('将元素移动到可见区域失败')
         self._get_screenShot(model_name)
         raise
示例#7
0
 def click_ele(self,locator,model_name=''):
     ele = self.find_ele(locator)
     try:
         logger.info('{0}-点击操作'.format(model_name))
         ele.click()
     except:
         logger.exception('点击元素操作失败')
         self._get_screenShot(model_name)
         raise
示例#8
0
 def test_send_Email_withoutReceive(self,init_writeEnv):
     #步骤:发送邮件---无收件人
     WriteEmailPage(init_writeEnv).send_text_Email(send_textEmail_withoutRecive['receive'],send_textEmail_withoutRecive['subject'],send_textEmail_withoutRecive['Email_content'])
     #断言:是否有正确的提示信息
     try:
         assert WriteEmailPage(init_writeEnv).get_withoutReceive_msg() == send_textEmail_withoutRecive['expected']
     except AssertionError:
         logger.exception('断言出错啦')
         raise
示例#9
0
 def test_save_draft(self,init_writeEnv):
     #点击存草稿button
     WriteEmailPage(init_writeEnv).save_draft()
     #断言--判断是否有邮件保存成功的提示信息
     try:
         assert '成功保存到草稿箱' in WriteEmailPage(init_writeEnv).get_saveDraft_success_msg()
     except AssertionError:
         logger.exception('断言出错啦')
         raise
示例#10
0
 def input_keys(self,locator,content,model_name=''):
     ele = self.find_ele(locator,model_name)
     try:
         logger.info('{0}-输入文本'.format(model_name))
         ele.send_keys(content)
     except:
         logger.exception('输入文本操作失败')
         self._get_screenShot(model_name)
         raise
示例#11
0
 def test_send_text_Email_ok(self,init_writeEnv):
     #步骤:发送邮件
     WriteEmailPage(init_writeEnv).send_text_Email(send_textEmail_success['receive'],send_textEmail_success['subject'],send_textEmail_success['Email_content'])
     #断言:是否有发送成功的提示
     try:
         assert WriteEmailPage(init_writeEnv).get_sendSuccess_msg() == send_textEmail_success['expected']
     except AssertionError:
         logger.exception('断言出错啦:')
         raise
示例#12
0
 def test_login_noData(self, init_loginEnv, data):
     #不输入用户名或密码登录
     init_loginEnv[1].login(data['username'], data['passwd'])
     #断言
     try:
         assert init_loginEnv[1].get_login_noData_msg() == data['expected']
     except AssertionError:
         logger.exception('断言失败啦!')
         raise
示例#13
0
 def test_login_success(self, init_loginEnv):
     #输入用户名、密码,点击[登录]button
     init_loginEnv[1].login(login_success_data['username'],
                            login_success_data['passwd'])
     #断言,比对结果
     try:
         assert IndexPage(init_loginEnv[0]).get_userAccount(
         ) == login_success_data['expected']
     except AssertionError:
         logger.exception('断言失败啦!')
         raise
示例#14
0
 def wait_iframe_and_switch_to_it(self,locator,wait_time=20,poll_frequency=0.5,model_name=''):
     """
     :param locator: 类型为元组(By.XXX,iframe的定位表达式),
     """
     ele = self.find_ele(locator)
     try:
         logger.info('等待并且换到iframe-{0}'.format(model_name))
         WebDriverWait(self.driver,wait_time,poll_frequency).until(EC.frame_to_be_available_and_switch_to_it(ele))
     except:
         logger.exception('等待并且换到iframe失败')
         self._get_screenShot(model_name)
         raise
示例#15
0
 def test_goto_draft(self, init_loginedEnv):
     name = '进入草稿箱页面'
     logger.info(name)
     #点击【写信】操作
     IndexPage(init_loginedEnv).goto_drafts()
     #比对当前是否在草稿箱页面(tab)  当前title为:草稿箱
     tab_title = CommonPage(init_loginedEnv).get_current_tab()
     #断言
     try:
         assert tab_title == draft_tab
     except AssertionError:
         logger.exception('断言出错啦')
         raise
示例#16
0
 def test_goto_writeEmail(self, init_loginedEnv):
     name = '进入写信页面'
     logger.info(name)
     #点击【写信】操作
     IndexPage(init_loginedEnv).goto_writeEmail()
     #比对当前是否在写信页面(tab)  当前title为:写信
     tab_title = CommonPage(init_loginedEnv).get_write_tabTitle()
     #断言
     try:
         assert tab_title == write_tab
     except AssertionError:
         logger.exception('断言出错啦')
         raise
示例#17
0
 def find_eles(self,locator,model_name=''):
     """
     :param locator: 类型为元组(By.XXX,定位表达式)
     :param filename:截图存放位置
     """
     #异常捕获,失败时,添加日志和截图
     try:
         logger.info('查找元素_{0}'.format(model_name))
         return self.driver.find_elements(*locator)
     except:
         logger.exception('查找元素失败')
         self._get_screenShot(model_name)
         raise
示例#18
0
 def test_goto_forgetPwdPage(self, init_loginEnv):
     #点击登录页面的【忘记密码】链接
     before_click_handles = init_loginEnv[0].window_handles
     init_loginEnv[1].goto_forgetPwd()
     #断言  ---页面是否打开(打开新窗口)
     try:
         init_loginEnv[1].wait_windows_and_switch_to_it(
             before_click_handles
         )  #调用wait_windows_and_switch_to_it方法,切换窗口,# 在测试用例中调用BasePage里的方法,是由页面对象去调用,该页面对象继承了BasePage类
         assert ForgetPwdPage(
             init_loginEnv[0]).get_forgetUrl() == forget_url
     except AssertionError:
         logger.exception('断言出错了')
         raise
示例#19
0
 def wait_windows_and_switch_to_it(self,current_handles,wait_time=20,poll_frequency=0.5,model_name=''):
     try:
         logger.info('等待新窗口打开')
         WebDriverWait(self.driver,wait_time,poll_frequency).until(EC.new_window_is_opened(current_handles))
     except:
         logger.exception('等待打开新窗口失败')
         self._get_screenShot(model_name)
         raise
     try:
         logger.info('切换到新打开的窗口')
         cur_handles = self.driver.window_handles
         self.driver.switch_to.window(cur_handles[-1])
     except:
         logger.exception('切换到新打开的窗口失败')
         self._get_screenShot(model_name)
         raise
示例#20
0
    def test_quit_login(self,init_loginedEnv):
        logger.info('退出登录')
        #点击退出button
        CommonPage(init_loginedEnv).quit_login()
        #断言
        try:
            assert QuitePage(init_loginedEnv).get_quiteSuccess_msg() == '您已成功退出网易邮箱。'
        except AssertionError:
            logger.exception("断言出错啦:")
            raise

    # def test_switch_tab_to_address_list(self,init_loginedEnv):
    #     logger.info( '切换到{0}tab中'.format(address_list_tab))
    #     CommonPage(init_loginedEnv).switch_tab(address_list_tab)
    #     #断言
    #     try:
    #         assert CommonPage(init_loginedEnv).get_tabTitle(address_list_tab) == '通讯录'
    #     except AssertionError:
    #         logger.exception("断言出错啦:")
    #         raise
示例#21
0
 def test_tab_name(self, init_loginedEnv):
     # 通过IndexPage页面对象来获取tab
     # name='进入首页页面,查看页面信息是否正确'
     # logger.info(name)
     # content=IndexPage(init_loginedEnv).get_tabTitle()
     # #断言
     # try:
     #     assert content == index_tab
     # except AssertionError:
     #     logger.exception('断言出错啦')
     #     raise
     # 通过CommonPage页面对象来获取tab
     name = '进入首页页面,查看页面信息是否正确'
     logger.info(name)
     content = CommonPage(init_loginedEnv).get_tabTitle(index_tab)
     #断言
     try:
         assert content == index_tab
     except AssertionError:
         logger.exception('断言出错啦')
         raise