예제 #1
0
 def setUp(self):
     self.sc = Config()
     self.b = BrowserDriver()
     self.driver = self.b.OpenBrowser()
     self.driver.implicitly_wait(30)  # 全局隐形等待30S
     self.imgs = []
     self.ym = YamlWrite()
예제 #2
0
 def setUp(self):
     self.sc = Config()
     self.b = BrowserDriver()
     self.driver = self.b.OpenBrowser()
     self.driver.implicitly_wait(5)  # 全局隐形等待30S
     self.imgs = []
     self.ym = YamlWrite()
     # 每次执行用例前都登陆网页
     self.b.by_find_element('name', 'account').send_keys(
         self.sc.getConfig('User').get('username'))
     self.b.by_find_element('name', 'password').send_keys(
         self.sc.getConfig('User').get('password'))
     self.b.by_find_element('id', 'login').click()
     # 点击用户分组
     self.b.by_find_element('link_text', '组织架构').click()
예제 #3
0
 def setUp(self):
     self.sc = Config()
     self.b = BrowserDriver()
     self.driver = self.b.OpenBrowser()
     self.driver.implicitly_wait(10)  # 全局隐形等待30S
     self.imgs = []
     self.ym = YamlWrite()
     # 每次执行用例前都登陆网页
     self.b.by_find_element('name', 'account').send_keys(
         self.sc.getConfig('User').get('username'))
     self.b.by_find_element('name', 'password').send_keys(
         self.sc.getConfig('User').get('password'))
     self.b.by_find_element('id', 'login').click()
     # 点击用户分组
     self.b.by_find_element(
         'css',
         '#wrap > div > div.matter.clear > div.left_b.clear.fl.pob > div > div:nth-child(2) > div > ul > a:nth-child(2)'
     ).click()
예제 #4
0
 def setUp(self):
     self.sc = Config()
     self.b = BrowserDriver()
     self.driver = self.b.OpenBrowser()
     self.driver.implicitly_wait(5)  # 全局隐形等待30S
     self.imgs = []
     self.ym = YamlWrite()
     # 每次执行用例前都登陆网页
     self.b.by_find_element('name', 'account').send_keys(self.sc.getConfig('User').get('username'))
     self.b.by_find_element('name', 'password').send_keys(self.sc.getConfig('User').get('password'))
     self.b.by_find_element('id', 'login').click()
     # 先前往用户列表判断是否用用户
     self.b.by_find_element('link_text', '用户列表').click()
     if self.b.isElementExist('xpath','//*[@id="datagrid-row-r1-1-0"]/td[4]/div') == False:  # 判断列表内是否有用户,如果没有就创建用户
         # 创建10个用户
         for i in range(1, 20):
             if i % 2:
                 self.b.by_find_element('class', 'l-btn-text').click()
                 self.b.by_find_element('name', 'account').send_keys('admin%s' % i)
                 self.b.by_find_element('name', 'password').send_keys('123456')
                 self.b.by_find_element('name', 'username').send_keys('测试用户')
                 self.b.by_find_element('xpath',
                                         '//*[@id="layui-layer%s"]/div[2]/form/div[2]/button[1]' % i).click()
                 time.sleep(1)
             else:
                 continue
     # 获取共x记录
     self.usercount = self.b.by_find_element('css', '.pagination-info').text
     self.usercount = self.usercount[8:-2]
     # 再进入会议列表
     self.b.by_find_element('link_text', '会议列表').click()
     # 获取总页数
     self.page = self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/div/div[3]/table/tbody/tr/td[8]/span').text
     self.page = self.page[1:-1]
     List = []
     # 判断会议列表数据是否为空,或只有1页
     if self.page == '0' or self.page == '1':
         # 将列表所有的会议名称添加进集合
         for i in self.b.by_find_elements('css', '.datagrid-cell-c1-name'):
             List.append(i.text)
     else:
         for p in range(int(self.page)-1):
             for i in self.b.by_find_elements('css', '.datagrid-cell-c1-name'):
                 List.append(i.text)
             self.b.by_find_element('css', '.pagination-next').click()
             time.sleep(1)
     # 每次执行用例都判断会议列表中是否有数据
     if '测试铭牌设置' not in List:
         # 点击新增会议
         self.b.by_find_element('link_text', '新增会议').click()
         # 会议名称
         self.b.by_find_element('name', 'name').send_keys('测试铭牌设置')
         # 点击开始时间
         self.b.by_find_element('css', '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                                       'span:nth-child(2) > input.textbox-text.validatebox-text').click()
         # 点击结束时间
         self.b.by_find_element('css', '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                                       'span:nth-child(5) > input.textbox-text.validatebox-text').click()
         # 点击增加时间
         self.b.by_find_element('css', 'body > div:nth-child(26) > div > div:nth-child(2) > span > '
                                       'span > a > a.spinner-arrow-up').click()
         # 点击确定
         self.b.by_find_element('css', 'body > div:nth-child(26) > div > div.datebox-button > table > '
                                       'tbody > tr > td:nth-child(2) > a').click()
         # 点击新增确定
         self.b.by_find_element('css', '#add_meeting > div > div:nth-child(7) > div:nth-child(1) > button').click()
         time.sleep(1)
         '''选择参会人'''
         # 点击'选择参会人'
         self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
         time.sleep(1)
         # 鼠标悬浮在'请选择用户'上
         self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
         # 全选用户
         self.b.by_find_element('css', '#user-container > div > span > div.sprite_san.fr').click()
         # 点击确定
         self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
         time.sleep(1)
         # 进入会议资料界面
         self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
         time.sleep(1)
     else:
         self.b.by_find_element('link_text', '测试铭牌设置').click()
         # 判断参会人界面中是否有参会人
         if self.b.isElementExist('css', '#datagrid-row-r2-2-0 > td:nth-child(2) > div > span') == False:
             # 点击'选择参会人'
             self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
             time.sleep(1)
             # 鼠标悬浮在'请选择用户'上
             self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
             # 全选用户
             self.b.by_find_element('css', '#user-container > div > span > div.sprite_san.fr').click()
             # 点击确定
             self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
             time.sleep(2)
         # 进入会议资料界面
         self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
         time.sleep(1)
예제 #5
0
class Test_meetingdocument(unittest.TestCase):

    def setUp(self):
        self.sc = Config()
        self.b = BrowserDriver()
        self.driver = self.b.OpenBrowser()
        self.driver.implicitly_wait(5)  # 全局隐形等待30S
        self.imgs = []
        self.ym = YamlWrite()
        # 每次执行用例前都登陆网页
        self.b.by_find_element('name', 'account').send_keys(self.sc.getConfig('User').get('username'))
        self.b.by_find_element('name', 'password').send_keys(self.sc.getConfig('User').get('password'))
        self.b.by_find_element('id', 'login').click()
        # 先前往用户列表判断是否用用户
        self.b.by_find_element('link_text', '用户列表').click()
        if self.b.isElementExist('xpath','//*[@id="datagrid-row-r1-1-0"]/td[4]/div') == False:  # 判断列表内是否有用户,如果没有就创建用户
            # 创建10个用户
            for i in range(1, 20):
                if i % 2:
                    self.b.by_find_element('class', 'l-btn-text').click()
                    self.b.by_find_element('name', 'account').send_keys('admin%s' % i)
                    self.b.by_find_element('name', 'password').send_keys('123456')
                    self.b.by_find_element('name', 'username').send_keys('测试用户')
                    self.b.by_find_element('xpath',
                                            '//*[@id="layui-layer%s"]/div[2]/form/div[2]/button[1]' % i).click()
                    time.sleep(1)
                else:
                    continue
        # 获取共x记录
        self.usercount = self.b.by_find_element('css', '.pagination-info').text
        self.usercount = self.usercount[8:-2]
        # 再进入会议列表
        self.b.by_find_element('link_text', '会议列表').click()
        # 获取总页数
        self.page = self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/div/div[3]/table/tbody/tr/td[8]/span').text
        self.page = self.page[1:-1]
        List = []
        # 判断会议列表数据是否为空,或只有1页
        if self.page == '0' or self.page == '1':
            # 将列表所有的会议名称添加进集合
            for i in self.b.by_find_elements('css', '.datagrid-cell-c1-name'):
                List.append(i.text)
        else:
            for p in range(int(self.page)-1):
                for i in self.b.by_find_elements('css', '.datagrid-cell-c1-name'):
                    List.append(i.text)
                self.b.by_find_element('css', '.pagination-next').click()
                time.sleep(1)
        # 每次执行用例都判断会议列表中是否有数据
        if '测试铭牌设置' not in List:
            # 点击新增会议
            self.b.by_find_element('link_text', '新增会议').click()
            # 会议名称
            self.b.by_find_element('name', 'name').send_keys('测试铭牌设置')
            # 点击开始时间
            self.b.by_find_element('css', '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                                          'span:nth-child(2) > input.textbox-text.validatebox-text').click()
            # 点击结束时间
            self.b.by_find_element('css', '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                                          'span:nth-child(5) > input.textbox-text.validatebox-text').click()
            # 点击增加时间
            self.b.by_find_element('css', 'body > div:nth-child(26) > div > div:nth-child(2) > span > '
                                          'span > a > a.spinner-arrow-up').click()
            # 点击确定
            self.b.by_find_element('css', 'body > div:nth-child(26) > div > div.datebox-button > table > '
                                          'tbody > tr > td:nth-child(2) > a').click()
            # 点击新增确定
            self.b.by_find_element('css', '#add_meeting > div > div:nth-child(7) > div:nth-child(1) > button').click()
            time.sleep(1)
            '''选择参会人'''
            # 点击'选择参会人'
            self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
            time.sleep(1)
            # 鼠标悬浮在'请选择用户'上
            self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
            # 全选用户
            self.b.by_find_element('css', '#user-container > div > span > div.sprite_san.fr').click()
            # 点击确定
            self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
            time.sleep(1)
            # 进入会议资料界面
            self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
            time.sleep(1)
        else:
            self.b.by_find_element('link_text', '测试铭牌设置').click()
            # 判断参会人界面中是否有参会人
            if self.b.isElementExist('css', '#datagrid-row-r2-2-0 > td:nth-child(2) > div > span') == False:
                # 点击'选择参会人'
                self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
                time.sleep(1)
                # 鼠标悬浮在'请选择用户'上
                self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
                # 全选用户
                self.b.by_find_element('css', '#user-container > div > span > div.sprite_san.fr').click()
                # 点击确定
                self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
                time.sleep(2)
            # 进入会议资料界面
            self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
            time.sleep(1)


    def tearDown(self):
        # 结束用例后先退出浏览器,防止cooking保存
        self.b.QuitBrowser()


    def addimg(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True


    def test_hyzl_at_01(self):
        """会议资料界面——检查页面标题"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 获取页面title
            title = self.b.by_find_element('css', '.personnel.fl').text
            self.assertEqual('会议资料', title, '页面标题显示错误:%s' % title)
            print('\n页面标题:%s' % title)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_02(self):
        """会议资料界面——会议资料顶部栏显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 断言'按名称排序'功能是否存在
            self.assertEqual('按名称排序', self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(1)').text, '按名称排序不存在或显示错误')
            # 断言'按时间排序'功能是否存在
            self.assertEqual('按时间排序', self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(2)').text, '按时间排序不存在或显示错误')
            # 断言'加入文件夹'功能是否存在
            self.assertEqual('加入文件夹', self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').text, '加入文件夹不存在或显示错误')
            # 断言'上传文件夹'功能是否存在
            self.assertEqual('上传文件', self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(4)').text, '上传文件不存在或显示错误')
            # 断言'删除'功能是否存在
            self.assertEqual('删除', self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(3)').text, '删除不存在或显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_03(self):
        """会议资料界面——会议资料字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 断言选择框是否存在
            self.assertTrue(self.b.isElementExist('css', '#all-checked'), '选择框不存在')
            # 断言排序是否存在
            self.assertEqual('排序', self.b.by_find_element('css', '.f-flex-content.table_n.clear > li:nth-child(2)').text, '排序不存在或显示错误')
            # 断言名称是否存在
            self.assertEqual('名称', self.b.by_find_element('css', '.f-flex-content.table_n.clear > li:nth-child(3)').text, '名称不存在或显示错误')
            # 断言上传人是否存在
            self.assertEqual('上传人', self.b.by_find_element('css', '.f-flex-content.table_n.clear > li:nth-child(4)').text, '上传人不存在或显示错误')
            # 断言参与/查看是否存在
            self.assertEqual('参与/查看', self.b.by_find_element('css', '.f-flex-content.table_n.clear > li:nth-child(5)').text, '参与/查看不存在或显示错误')
            # 断言上传时间是否存在
            self.assertEqual('上传时间', self.b.by_find_element('css', '.f-flex-content.table_n.clear > li:nth-child(6)').text, '上传时间不存在或显示错误')
            # 断言操作是否存在
            self.assertEqual('操作', self.b.by_find_element('css', '.f-flex-content.table_n.clear > li:nth-child(7)').text, '操作不存在或显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_04(self):
        """会议资料界面——新增文件夹字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在会议资料,false创建
            if self.b.isElementExist('css', '#theadView > div:nth-child(1) > ul > li:nth-child(2) > div > span.f-one-level-span') == False:
                # 点击'加入文件夹'
                self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                # 输入文件夹名称
                self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('测试新增文件夹')
                # 点击确定
                self.b.by_find_element('css', '.div_btn.cz').click()
                time.sleep(1)
                self.addimg()
            self.addimg()
            # 断言选择框是否存在
            self.assertTrue(self.b.isElementExist('xpath', '//*[@id="theadView"]/div[1]/ul/li[1]/input'), '选择框不存在')
            # 断言序号是否存在
            self.assertTrue(self.b.isElementExist('xpath', '//*[@id="theadView"]/div[1]/ul/li[2]/div/span[1]'),
                            '序号不存在或显示错误')
            # 断言名称是否存在
            self.assertTrue(self.b.isElementExist('xpath', '//*[@id="theadView"]/div[1]/ul/li[3]/div/span'),
                            '名称不存在或显示错误')
            # 断言上传人是否存在
            self.assertTrue(self.b.isElementExist('xpath', '//*[@id="theadView"]/div[1]/ul/li[4]'),
                            '上传人不存在或显示错误')
            # 断言参与/查看人数是否存在
            self.assertTrue(self.b.isElementExist('xpath', '//*[@id="theadView"]/div[1]/ul/li[5]'),
                            '参与/查看人数不存在或显示错误')
            # 断言上传时间是否存在
            self.assertTrue(self.b.isElementExist('xpath', '//*[@id="theadView"]/div[1]/ul/li[6]'),
                            '上传时间不存在或显示错误')
            # 断言操作'文件夹'是否存在
            self.assertEqual('文件夹', self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[7]/span[1]').text, '操作(文件夹)不存在或显示错误')
            # 断言操作'上传'是否存在
            self.assertEqual('上传', self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[7]/span[2]').text, '操作(上传)不存在或显示错误')
            # 断言操作'编辑'是否存在
            self.assertEqual('编辑', self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[7]/span[3]').text, '操作(编辑)不存在或显示错误')
            # 断言操作'删除'是否存在
            self.assertEqual('删除', self.b.by_find_element('xpath', '//*[@id="theadView"]/div/ul/li[7]/span[10]').text, '操作(删除)不存在或显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_05(self):
        """会议资料界面——操作选择框与全选框"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在会议资料,false创建
            if self.b.isElementExist('css', '#theadView > div:nth-child(1) > ul > li:nth-child(2) > div > span.f-one-level-span') == False:
                # 点击'加入文件夹'
                self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                # 输入文件夹名称
                self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('测试新增文件夹')
                # 点击确定
                self.b.by_find_element('css', '.div_btn.cz').click()
                time.sleep(1)
                self.addimg()
            # 点击第一条数据的选择框
            self.b.by_find_element('xpath', '//*[@id="theadView"]/div/ul/li[1]/input').click()
            # 断言第一条数据是否被选中
            self.assertTrue(
                self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[1]/input').is_selected(),
                '勾选框未选中')
            self.addimg()
            time.sleep(1)

            # 取消第一条数据的选择
            self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[1]/input').click()
            # 断言第一条数据是否被取消选中
            self.assertFalse(
                self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[1]/input').is_selected(),
                '勾选框未取消')
            self.addimg()
            time.sleep(1)

            # 点击全选框
            self.b.by_find_element('css', '#all-checked').click()

            # 断言全选框是否被选中
            self.assertTrue(self.b.by_find_element('css', '#all-checked').is_selected(), '全选框未选中')
            self.addimg()
            time.sleep(1)
            # 取消全选框选择
            self.b.by_find_element('css', '#all-checked').click()

            # 断言全选框是否被取消选中
            self.assertFalse(self.b.by_find_element('css', '#all-checked').is_selected(), '全选框未取消')
            self.addimg()

            # 点击全选框,取消数据选择框,全选框被取消选中
            self.b.by_find_element('css', '#all-checked').click()
            # 点击数据选择框
            self.b.by_find_element('xpath', '//*[@id="theadView"]/div[1]/ul/li[1]/input').click()
            time.sleep(1)
            # 断言全选框是否被取消选中
            self.assertFalse(self.b.by_find_element('css', '#all-checked').is_selected(), '全选框未取消')
            self.addimg()
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise



    def test_hyzl_at_06(self):
        """会议资料界面——每页显示10条数据"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 分页下拉框选择10条/页
            Select(self.b.by_find_element('css', '.pagination-page-list')).select_by_visible_text('10')
            self.addimg()
            List = []
            # 循环整个会议资料,添加进集合,计算本页有多少条数据
            for l in self.b.by_find_elements('css', '.f-one-level-span'):
                List.append(l)
            self.assertTrue(len(List) <= 10, '超出10条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_07(self):
        """会议资料界面——每页显示20条数据"""
        # 选择10条数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            Select(self.b.by_find_element('css', '.pagination-page-list')).select_by_visible_text('20')
            time.sleep(1)
            self.addimg()
            List = []
            for l in self.b.by_find_elements('css', '.f-one-level-span'):
                List.append(l)
            self.assertTrue(len(List) <= 20, '超出20条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_08(self):
        """会议资料界面——每页显示50条数据"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            Select(self.b.by_find_element('css', '.pagination-page-list')).select_by_visible_text('50')
            time.sleep(1)
            self.addimg()
            List = []
            for l in self.b.by_find_elements('css', '.f-one-level-span'):
                List.append(l)
            self.assertTrue(len(List) <= 50, '超出50条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_09(self):
        """会议资料界面——每页显示100条数据"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            Select(self.b.by_find_element('css', '.pagination-page-list')).select_by_visible_text('100')
            time.sleep(1)
            self.addimg()
            List = []
            for l in self.b.by_find_elements('css', '.f-one-level-span'):
                List.append(l)
            self.assertTrue(len(List) <= 100, '超出100条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_010(self):
        """会议资料界面——首页图标点击"""
        # 点击首页图标,需要回到第一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在会议资料,false创建
            if self.b.isElementExist('css', '#theadView > div:nth-child(1) > ul > li:nth-child(2) > div > span.f-one-level-span') == False:
                # 点击'加入文件夹'
                self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                # 输入文件夹名称
                self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('测试新增文件夹')
                # 点击确定
                self.b.by_find_element('css', '.div_btn.cz').click()
                time.sleep(1)
                self.addimg()
            # 点击首页图标
            self.b.by_find_element('css', '.pagination-first').click()
            time.sleep(1)
            self.addimg()
            # 断言跳转框内数字是否为1
            self.assertTrue(self.b.by_find_element('css', 'input.pagination-num').get_attribute('value') == '1',
                            '回到首页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_011(self):
        """会议资料界面——尾页图标点击"""
        # 点击尾页图标,需要前往最后一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.b.by_find_element('css', '.pagination-last').click()
            time.sleep(1)
            self.addimg()
            # 获取总页数
            count = self.b.by_find_element('css', '#pp > table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            count = count[1:-1]
            # 获取跳转框内的数字
            sum1 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            # # 断言共X页是否等于跳转框内的数字
            self.assertTrue(count == sum1, '前往尾页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_012(self):
        """会议资料界面——下一页图标点击"""
        # 点击下一页图标,需要回到下一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取页码输入框的数据
            sum1 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            # 点击下一页
            self.b.by_find_element('css', '.pagination-next').click()
            time.sleep(1)
            self.addimg()
            # 获取点击下一页后的输入框数据
            sum2 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            # 获取总页数
            count = self.b.by_find_element('css', '#pp > table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            count = count[1:-1]
            if count == '1' or count == '0':
                self.assertTrue(sum1 == sum2, '点击下一页失败')
            else:
                self.assertTrue(int(sum2) == int(sum1) + 1, '点击下一页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_013(self):
        """会议资料界面——上一页图标点击"""
        # 点击上一页图标,需要回到上一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取页码输入框的数据
            sum1 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            # 点击上一页
            self.b.by_find_element('css', '.pagination-prev').click()
            time.sleep(1)
            self.addimg()
            # 点击上一页后获取输入框的数据
            sum2 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            if sum1 == '1' or sum1 == '0':
                self.assertTrue(sum1 == sum2, '点击上一页失败')
            else:
                self.assertTrue(int(sum2) == (int(sum1) - 1), '点击上一页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

        
    def test_hyzl_at_014(self):
        """会议资料界面——页数搜索(页数框输入小于1的数)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在会议资料,false创建
            if self.b.isElementExist('css', '#theadView > div:nth-child(1) > ul > li:nth-child(2) > div > span.f-one-level-span') == False:
                # 点击'加入文件夹'
                self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                # 输入文件夹名称
                self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('测试新增文件夹')
                # 点击确定
                self.b.by_find_element('css', '.div_btn.cz').click()
                time.sleep(1)
                self.addimg()
            # 清空页数框
            self.b.by_find_element('css','.pagination-num').clear()
            # 页数框输入0
            self.b.by_find_element('css','.pagination-num').send_keys(0)
            self.addimg()
            # 模拟键盘回车
            self.b.by_find_element('css', '.pagination-num').send_keys(Keys.ENTER)
            self.addimg()
            time.sleep(1)
            # 获取跳转后的输入框值
            sum2 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            self.assertTrue(sum2 == '1', '跳转至0页,跳转框数字为%s' % sum2)

            # 清空页数框
            self.b.by_find_element('css','.pagination-num').clear()
            # 页数框输入输入负数
            self.b.by_find_element('css','.pagination-num').send_keys(-1)
            self.addimg()
            # 模拟键盘回车
            self.b.by_find_element('css', '.pagination-num ').send_keys(Keys.ENTER)
            self.addimg()
            time.sleep(1)
            # 获取跳转后的输入框值
            sum2 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            self.assertTrue(sum2 == '1', '跳转至-1页,跳转框数字为%s' % sum2)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_015(self):
        """会议资料界面——页数搜索(页数框输入大于总页数的数)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在会议资料,false创建
            if self.b.isElementExist('css', '#theadView > div:nth-child(1) > ul > li:nth-child(2) > div > span.f-one-level-span') == False:
                # 点击'加入文件夹'
                self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                # 输入文件夹名称
                self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('测试新增文件夹')
                # 点击确定
                self.b.by_find_element('css', '.div_btn.cz').click()
                time.sleep(1)
                self.addimg()
            # 清空页数框
            self.b.by_find_element('css','.pagination-num').clear()
            # 获取总页数
            count = self.b.by_find_element('css', '#pp > table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            count = count[1:-1]
            # 页数框输入总页数+1
            self.b.by_find_element('css','.pagination-num').send_keys(int(count)+1)
            self.addimg()
            # 模拟键盘回车
            self.b.by_find_element('css', '.pagination-num ').send_keys(Keys.ENTER)
            self.addimg()
            time.sleep(1)
            # 获取跳转后的输入框值
            sum2 = self.b.by_find_element('css', 'input.pagination-num').get_attribute('value')
            self.assertTrue(sum2 == count, '跳转至%s页,跳转框数字为%s' % (int(count)+1, sum2))
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_016(self):
        # 正确跳转界面暂时无法编写,数据无法创建过多
        print('暂未编写')
        pass

    def test_hyzl_at_017(self):
        """会议资料界面——总页数显示(查看用户分组页数)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取每页数据量,默认为10条/页
            sum1 = Select(self.b.by_find_element('css', '.pagination-page-list')).all_selected_options[0].text
            self.b.by_find_element('css', '.pagination-last').click()  # 点击尾页
            self.addimg()
            List = []
            # 获取最后一页数据
            for l in self.b.by_find_elements('css', '.f-one-level-span'):
                List.append(l)
            # 获取跳转框页码,
            sum2 = int(self.b.by_find_element('css', 'input.pagination-num').get_attribute('value'))
            # 计算总数据:(页码-1)*每页数据条数+最后一页数据
            if sum2 == 0 or sum2 == 1:
                count = int(len(List))
            else:
                count = (sum2 - 1) * int(sum1) + int(len(List))
            # 获取总页数文字
            number = self.b.by_find_element('css', '#pp > table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            numcount = number[1:-1]
            if count == 0:
                self.assertTrue(number == '共0页', '页面无数据,总页数显示共%s页'%numcount)
            elif count > 10:
                # 计算总页数
                pages = (count-int(len(List)))/10+1
                self.assertTrue(int(numcount) == pages, '共%s页,但显示共%s页' % (pages, numcount))
            elif count <= 10:
                self.assertTrue(int(numcount) == 1, '共1页,但显示共%s页' % numcount)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyzl_at_018(self):
        """会议资料界面——分组条数显示(左下角的分组记录显示)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取每页数据量,默认为10条/页
            sum1 = Select(self.b.by_find_element('css', '.pagination-page-list')).all_selected_options[0].text
            self.b.by_find_element('css', '.pagination-last').click()  # 点击尾页
            time.sleep(1)
            self.addimg()
            List = []
            # 获取最后一页数据
            for l in self.b.by_find_elements('css', '.f-one-level-span'):
                List.append(l)
            # 获取跳转框页码,
            sum2 = int(self.b.by_find_element('css', 'input.pagination-num').get_attribute('value'))
            # 计算总数据:(页码-1)*每页数据条数+最后一页数据
            if sum2 == 0 or sum2 == 1:
                count = int(len(List))
            else:
                count = (sum2 - 1) * int(sum1) + int(len(List))

            # 点击首页图标
            self.b.by_find_element('css', '.pagination-first').click()
            time.sleep(1)
            self.addimg()

            # 获取左下角文字
            records = self.b.by_find_element('css','.pagination-info').text
            # 三种情况断言,页面无数据,页面数据小于每页数据量,页面数据大于每页数据量
            if count == 0:
                self.assertTrue(records == '显示0到0,共0记录', '页面无数据,左下角显示错误')
            elif count > int(sum1):
                self.assertTrue(records == '显示1到%s,共%s记录' % (int(sum1), count), '页面总数据大于10,左下角显示错误,详情请查看截图')
            else:
                self.assertTrue(records == '显示1到%s,共%s记录' % (count, count), '页面总数据小于或等于10,左下角显示错误,详情请查看截图')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_019(self):
        """会议资料界面——进入加入文件夹界面"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.b.by_find_element('link_text', '参会人员').click()
            # 获取总页数
            page = self.b.by_find_element('xpath',
                                               '//*[@id="wrap"]/div/div[3]/div[3]/div/div[2]/div/'
                                               'div/div/div[3]/table/tbody/tr/td[8]/span').text
            page = page[1:-1]
            List = []
            # 判断参会人员列表数据是否为空,或只有1页
            if page == '0' or page == '1':
                # 将列表所有的参会人员名称添加进集合
                for i in self.b.by_find_elements('css', '.datagrid-cell-c2-username'):
                    List.append(i.text)
            else:
                for p in range(int(page)):
                    for i in self.b.by_find_elements('css', '.datagrid-cell-c2-username'):
                        List.append(i.text)
                    self.b.by_find_element('css', '.pagination-next').click()
                    time.sleep(1)
            for i in List:
                if i == '名称':
                    List.remove(i)
            # 点击会议资料
            self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 断言标题
            self.assertEqual('加入文件夹', self.b.by_find_element('css', '.layui-layer-title').text, '进入加入文件夹失败')
            # 断言用户是否与参会人员相同
            newList = []
            for n in self.b.by_find_elements('css', 'div.m-meet-datum-popup-right-bd > div > div > ul > li'):
                newList.append(n.text)
            self.assertTrue(List == newList, '用户与参会人员不同')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_020(self):
        """会议资料界面——不输入文件夹名称,点击确定"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 点击确定
            self.b.by_find_element('css', '.div_btn.cz').click()
            self.addimg()
            # 断言是否有提示
            self.assertEqual('请添加文件夹名称', self.b.by_find_element('css', '.layui-layer-content.layui-layer-padding').text,
                             '未输入文件夹名称,无错误提示')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_021(self):
        """会议资料界面——不输入文件夹名称,点击确定"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 点击确定
            self.b.by_find_element('css', '.div_btn.cz').click()
            self.addimg()
            # 断言是否有提示
            self.assertEqual('请添加文件夹名称', self.b.by_find_element('css', '.layui-layer-content.layui-layer-padding').text,
                             '未输入文件夹名称,无错误提示')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_022(self):
        """会议资料界面——查看全选(全选),点击用户,查看选择框是否可以操作"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 判断查看全选是否选中全选
            if self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(3) > input[type=radio]').is_selected() == False:
                # 选中'全选'权限
                self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(3) > input[type=radio]').click()
            for n in self.b.by_find_elements('css', 'div.m-meet-datum-popup-right-bd > div > div > ul > li > input'):
                n.click()
                self.assertTrue(n.is_selected(), '%s在全选权限状态被取消选中' % n.find_element_by_xpath('following-sibling::span').text)
                self.assertTrue(n.is_displayed(), '%s在全选权限状态中,选中框可以操作' % n.find_element_by_xpath('following-sibling::span').text)
            self.addimg()
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise



    def test_hyzl_at_023(self):
        """会议资料界面——查看全选(手选),点击用户,查看是否可以被取消选中"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 判断查看手选是否选中全选
            if self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(2) > input[type=radio]').is_selected() == False:
                # 选中'手选'权限
                self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(2) > input[type=radio]').click()
            # 循环所有用户的选择框选中状态
            for n in self.b.by_find_elements('css', 'div.m-meet-datum-popup-right-bd > div > div > ul > li > input'):
                n.click()
                self.assertFalse(n.is_selected(), '%s在手选权限状态无法被取消选中' % n.find_element_by_xpath('following-sibling::span').text)
            # 点击'手选'权限下的全选操作
            self.b.by_find_element('css', 'div.m-meet-datum-popup-right-bd > div > div > h2 > input').click()
            # 断言是否可以操作,以及出于被选中状态
            self.assertTrue(self.b.by_find_element('css','div.m-meet-datum-popup-right-bd > div > div > h2 > input').is_selected(), '全选框无法被选中')
            self.addimg()
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise



    def test_hyzl_at_024(self):
        """会议资料界面——删除部分参会人,查看加入文件夹界面右下角人数显示是否正常"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 进入参会人员界面,删除部分参会人员
            self.b.by_find_element('link_text', '参会人员').click()
            # 选择第一个和第二个参会人员删除
            self.b.by_find_element('css', '#datagrid-row-r2-2-0 > td:nth-child(1) > div > input').click()
            self.b.by_find_element('css', '#datagrid-row-r2-2-1 > td:nth-child(1) > div > input').click()
            # 点击删除
            self.b.by_find_element('css', '.nav_one.n_5.fl.batch-delete').click()
            # 点击确定
            self.b.by_find_element('css', '.layui-layer-btn0').click()
            time.sleep(2)
            self.addimg()
            # 获取参会人员总数
            count = self.b.by_find_element('css', '.pagination-info').text
            count = re.findall('\d+\.?\d*',count)[2]
            # 切换到会议资料界面
            self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 获取加入文件夹中的总人数
            jcount = self.b.by_find_element('css', 'span.f-fc-blue').text
            jcount = jcount[:-1]
            self.assertTrue(count == jcount, '加入文件夹的人数与参会人员的总数相等')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_025(self):
        """会议资料界面——新增部分参会人,查看加入文件夹界面右下角人数显示是否正常"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 进入参会人员界面,删除部分参会人员
            self.b.by_find_element('link_text', '参会人员').click()
            # 点击'选择参会人'
            self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
            time.sleep(1)
            # 鼠标悬浮在'请选择用户'上
            self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
            # 全选用户
            self.b.by_find_element('css', '#user-container > div > span > div.sprite_san.fr').click()
            # 点击确定
            self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
            time.sleep(2)
            self.addimg()
            # 获取参会人员总数
            count = self.b.by_find_element('css', '.pagination-info').text
            count = re.findall('\d+\.?\d*',count)[2]
            # 切换到会议资料界面
            self.b.by_find_element('xpath', '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/ul/a[5]').click()
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 获取加入文件夹中的总人数
            jcount = self.b.by_find_element('css', 'span.f-fc-blue').text
            jcount = jcount[:-1]
            self.assertTrue(count == jcount, '加入文件夹的人数与参会人员的总数相等')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise



    def test_hyzl_at_026(self):
        """会议资料界面——进入加入文件夹界面,鼠标悬浮在?上,查看是否有提示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            self.b.move_to_element(By.CSS_SELECTOR, 'div.m-check-power-tips-box > i')
            self.assertTrue(self.b.by_find_element('css', 'div.m-check-power-tips-box > p').is_displayed(), '鼠标悬浮在?上,无提示显示')
            countent1 = self.b.by_find_element('css', 'div.m-check-power-tips-box > p > span:nth-child(1)').text
            countent2 = self.b.by_find_element('css', 'div.m-check-power-tips-box > p > span:nth-child(2)').text
            self.assertEqual('手选:后期新增用户需要手动勾选该查看权限', countent1, '悬浮后,显示提示错误')
            self.assertEqual('全选:后期新增用户自动勾选该查看权限', countent2, '悬浮后,显示提示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise



    def test_hyzl_at_027(self):
        """会议资料界面——输入同名文件夹名称"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在文件夹
            if self.b.isElementExist('css', '#theadView > div:nth-child(1) > ul > li:nth-child(2) > div > span.f-one-level-span'):
                name = self.b.by_find_element('css', '#theadView > div:nth-child(1) > ul > '
                                                     'li.f-flex-item-5.f-align_item.down.f-text_ellipsis.f-ex > '
                                                     'div > span').text
                # 点击加入文件夹
                self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                # 输入文件夹名称
                self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys(name)
                # 点击确定
                self.b.by_find_element('css', '.div_btn.cz').click()
                self.addimg()
                # 断言是否有提示
                self.assertTrue(self.b.isElementExist('css', '.layui-layer-dialog'), '文件夹名称重复,保存后无提示框弹出')
                self.assertEqual('文件夹名称不能重复', self.b.by_find_element('css', '.layui-layer-dialog > .layui-layer-content').text,
                                 '文件夹名称重复,提示错误')
            else:
                for i in range(2):
                    # 点击加入文件夹
                    self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
                    # 输入文件夹名称
                    self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('测试新增文件夹')
                    # 点击确定
                    self.b.by_find_element('css', '.div_btn.cz').click()
                    time.sleep(1)
                self.addimg()
                # 断言是否有提示
                self.assertTrue(self.b.isElementExist('css', '.layui-layer-dialog'), '文件夹名称重复,保存后无提示框弹出')
                self.assertEqual('文件夹名称不能重复',
                                 self.b.by_find_element('css', '.layui-layer-dialog > .layui-layer-content').text,
                                 '文件夹名称重复,提示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_028(self):
        """会议资料界面——进入加入文件夹界面,选择全选全选,正常保存"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 输入文件夹名称
            self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').send_keys('这个文件夹没人使用')
            name = self.b.by_find_element('css', '#view > div:nth-child(1) > div:nth-child(1) > textarea').get_attribute('value')
            # 判断查看全选是否选中全选
            if self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(3) > input[type=radio]').is_selected() == False:
                # 选中'全选'权限
                self.b.by_find_element('css',
                                       'div.m-meet-datum-popup-right-hd > div:nth-child(3) > input[type=radio]').click()
            # 点击确定
            self.b.by_find_element('css', '.div_btn.cz').click()
            self.addimg()
            # # 断言是否有提示
            # self.assertEqual('保存成功!', self.b.by_find_element('css', '.layui-layer-content.layui-layer-padding').text,
            #                  '新建文件夹,提示错误')
            # 点击尾页
            self.b.by_find_element('css', '.pagination-last').click()
            # 获取最后一页所有的文件夹名称
            List = []
            for i in self.b.by_find_elements('css', '.f-text_ellipsis.f-flex-item'):
                List.append(i.text)
            # 断言最后一页是否有新建的文件夹
            self.assertTrue(name in List, '提示新增成功,但列表中无文件夹名称')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise


    def test_hyzl_at_029(self):
        """会议资料界面——进入加入文件夹界面,选择手选,取消所有参会人员"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 判断查看全选是否选中全选
            if self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(2) > input[type=radio]').is_selected() == False:
                # 选中'全选'权限
                self.b.by_find_element('css',
                                       'div.m-meet-datum-popup-right-hd > div:nth-child(2) > input[type=radio]').click()

            # 点击全选,取消所有参会人员的选择
            self.b.by_find_element('css', 'div.m-meet-datum-popup-right-bd > div > div > h2 > input').click()
            # 点击确定
            self.b.by_find_element('css', '.div_btn.cz').click()
            self.addimg()
            # 断言是否有提示
            self.assertEqual('至少选择一个参会人员', self.b.by_find_element('css', '.layui-layer-content.layui-layer-padding').text,
                             '未选择参会人员,提示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise



    def test_hyzl_at_030(self):
        """会议资料界面——进入加入文件夹界面,选择手选,取消参会人员,右下角人数更随变化"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击加入文件夹
            self.b.by_find_element('css', '.m-tb-title-btn > div:nth-child(5)').click()
            self.addimg()
            # 判断查看全选是否选中全选
            if self.b.by_find_element('css', 'div.m-meet-datum-popup-right-hd > div:nth-child(2) > input[type=radio]').is_selected() == False:
                # 选中'全选'权限
                self.b.by_find_element('css',
                                       'div.m-meet-datum-popup-right-hd > div:nth-child(2) > input[type=radio]').click()

            # 获取加入文件夹中的总人数
            jcount = self.b.by_find_element('css', 'span.f-fc-blue').text
            jcount = int(jcount[:-1])
            # for n in self.b.by_find_elements('css', 'div.m-meet-datum-popup-right-bd > div > div > ul > li > input'):
            #     n.click()
            #     self.assertEqual(jcount == , '未选择参会人员,提示错误')
            #     if not n.is_selected():
            TO DO
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise
예제 #6
0
class Test_CopywritingDesign(unittest.TestCase):
    def setUp(self):
        self.sc = Config()
        self.b = BrowserDriver()
        self.driver = self.b.OpenBrowser()
        self.driver.implicitly_wait(5)  # 全局隐形等待30S
        self.imgs = []
        self.ym = YamlWrite()
        # 每次执行用例前都登陆网页
        self.b.by_find_element('name', 'account').send_keys(
            self.sc.getConfig('User').get('username'))
        self.b.by_find_element('name', 'password').send_keys(
            self.sc.getConfig('User').get('password'))
        self.b.by_find_element('id', 'login').click()
        # 先前往用户列表判断是否用用户
        self.b.by_find_element('link_text', '用户列表').click()
        if self.b.isElementExist('xpath',
                                 '//*[@id="datagrid-row-r1-1-0"]/td[4]/div'
                                 ) == False:  # 判断列表内是否有用户,如果没有就创建用户
            # 创建10个用户
            for i in range(1, 20):
                if i % 2:
                    self.b.by_find_element('class', 'l-btn-text').click()
                    self.b.by_find_element('name',
                                           'account').send_keys('admin%s' % i)
                    self.b.by_find_element('name',
                                           'password').send_keys('123456')
                    self.b.by_find_element('name',
                                           'username').send_keys('测试用户')
                    self.b.by_find_element(
                        'xpath',
                        '//*[@id="layui-layer%s"]/div[2]/form/div[2]/button[1]'
                        % i).click()
                    time.sleep(1)
                else:
                    continue
        # 获取共x记录
        self.usercount = self.b.by_find_element('css', '.pagination-info').text
        self.usercount = self.usercount[8:-2]
        # 再进入会议列表
        self.b.by_find_element('link_text', '会议列表').click()
        # 获取总页数
        self.page = self.b.by_find_element(
            'xpath',
            '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/div/div[3]/table/tbody/tr/td[8]/span'
        ).text
        self.page = self.page[1:-1]
        List = []
        # 判断会议列表数据是否为空,或只有1页
        if self.page == '0' or self.page == '1':
            # 将列表所有的会议名称添加进集合
            for i in self.b.by_find_elements('css', '.datagrid-cell-c1-name'):
                List.append(i.text)
        else:
            for p in range(int(self.page) - 1):
                for i in self.b.by_find_elements('css',
                                                 '.datagrid-cell-c1-name'):
                    List.append(i.text)
                self.b.by_find_element('css', '.pagination-next').click()
                time.sleep(1)
        # 每次执行用例都判断会议列表中是否有数据
        if '测试铭牌设置' not in List:
            # 点击新增会议
            self.b.by_find_element('link_text', '新增会议').click()
            # 会议名称
            self.b.by_find_element('name', 'name').send_keys('测试铭牌设置')
            # 点击开始时间
            self.b.by_find_element(
                'css',
                '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                'span:nth-child(2) > input.textbox-text.validatebox-text'
            ).click()
            # 点击结束时间
            self.b.by_find_element(
                'css',
                '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                'span:nth-child(5) > input.textbox-text.validatebox-text'
            ).click()
            # 点击增加时间
            self.b.by_find_element(
                'css',
                'body > div:nth-child(26) > div > div:nth-child(2) > span > '
                'span > a > a.spinner-arrow-up').click()
            # 点击确定
            self.b.by_find_element(
                'css',
                'body > div:nth-child(26) > div > div.datebox-button > table > '
                'tbody > tr > td:nth-child(2) > a').click()
            # 点击新增确定
            self.b.by_find_element(
                'css',
                '#add_meeting > div > div:nth-child(7) > div:nth-child(1) > button'
            ).click()
            time.sleep(1)
            '''选择参会人'''
            # 点击'选择参会人'
            self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
            time.sleep(1)
            # 鼠标悬浮在'请选择用户'上
            self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
            # 全选用户
            self.b.by_find_element(
                'css',
                '#user-container > div > span > div.sprite_san.fr').click()
            # 点击确定
            self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
            time.sleep(1)
            # 进入铭牌设置界面
            self.b.by_find_element('link_text', '铭牌设置').click()
            # 进入文案界面设计
            self.b.by_find_element(
                'css', '.nameplate_nav.clear > span:nth-child(3)').click()
            time.sleep(1)
        else:
            self.b.by_find_element('link_text', '测试铭牌设置').click()
            # 判断参会人界面中是否有参会人
            if self.b.isElementExist(
                    'css',
                    '#datagrid-row-r2-2-0 > td:nth-child(2) > div > span'
            ) == False:
                # 点击'选择参会人'
                self.b.by_find_element('css', '.nav_one.n_1.fl.clear').click()
                time.sleep(1)
                # 鼠标悬浮在'请选择用户'上
                self.b.move_to_element(By.CSS_SELECTOR, '.manage_btn.clear')
                # 全选用户
                self.b.by_find_element(
                    'css',
                    '#user-container > div > span > div.sprite_san.fr').click(
                    )
                # 点击确定
                self.b.by_find_element('css', '.bottom_y.bottom_b1').click()
                time.sleep(2)
            # 进入铭牌设置界面
            self.b.by_find_element('link_text', '铭牌设置').click()
            # 进入文案界面设计
            self.b.by_find_element(
                'css', '.nameplate_nav.clear > span:nth-child(3)').click()
            time.sleep(1)

    def tearDown(self):
        # 结束用例后先退出浏览器,防止cooking保存
        self.b.QuitBrowser()

    def addimg(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True

    '''文案界面设计'''

    def test_wajm_at_01(self):
        """文案界面设计——检查页面标题"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 获取页面title
            title = self.b.by_find_element('css', '.personnel.fl').text
            self.assertEqual('铭牌设置', title, '页面标题显示错误:%s' % title)
            print('\n页面标题:%s' % title)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_02(self):
        """文案界面设计——检查页面标题"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 获取文案设计title
            documenttitle = self.b.by_find_element(
                'css', '.nameplate_nav.clear > span:nth-child(3)').text
            self.assertEqual('文案设计', documenttitle,
                             '文案设计标题显示错误:%s' % documenttitle)
            print('\n文案界面标题:%s' % documenttitle)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_03(self):
        """文案界面设计——文案设计字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 断言姓名显示是否存在
            self.assertEqual(
                '姓名显示',
                self.b.by_find_element(
                    'css', 'div.datagrid-view2 > div.datagrid-header > div '
                    '> table > tbody > tr > td:nth-child(1) > '
                    'div > span:nth-child(1)').text, '姓名显示不存在或显示错误')
            # 断言单位显示是否存在
            self.assertEqual(
                '单位显示',
                self.b.by_find_element(
                    'css', 'div.datagrid-view2 > div.datagrid-header > div '
                    '> table > tbody > tr > td:nth-child(2) > '
                    'div > span:nth-child(1)').text, '单位显示不存在或显示错误')
            # 断言职务显示是否存在
            self.assertEqual(
                '职务显示',
                self.b.by_find_element(
                    'css', 'div.datagrid-view2 > div.datagrid-header > div '
                    '> table > tbody > tr > td:nth-child(3) > '
                    'div > span:nth-child(1)').text, '职务显示不存在或显示错误')
            # 断言预览是否存在
            self.assertEqual(
                '预览',
                self.b.by_find_element(
                    'css', 'div.datagrid-view2 > div.datagrid-header > div '
                    '> table > tbody > tr > td:nth-child(4) > '
                    'div > span:nth-child(1)').text, '预览不存在或显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_04(self):
        """文案界面设计——文案设计参会人员字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 断言序号是否存在
            self.assertTrue(
                self.b.isElementExist('css',
                                      '#datagrid-row-r2-1-0 > td > div'),
                '序号不存在或显示错误')
            # 断言姓名是否存在
            self.assertTrue(
                self.b.isElementExist(
                    'css', '#datagrid-row-r2-2-0 > td:nth-child(1) > div'),
                '姓名不存在或显示错误')
            # 断言单位是否存在
            self.assertTrue(
                self.b.isElementExist(
                    'css', '#datagrid-row-r2-2-0 > td:nth-child(2) > div'),
                '单位不存在或显示错误')
            # 断言职务是否存在
            self.assertTrue(
                self.b.isElementExist(
                    'css', '#datagrid-row-r2-2-0 > td:nth-child(3) > div'),
                '职务不存在或显示错误')
            # 断言操作'欢迎界面'是否存在
            self.assertEqual(
                '欢迎界面',
                self.b.by_find_element(
                    'css', '#datagrid-row-r2-2-0 > td:nth-child(4) '
                    '> div > a:nth-child(1)').text, '操作(欢迎界面)不存在或显示错误')
            # 断言操作'铭牌'是否存在
            self.assertEqual(
                '铭牌',
                self.b.by_find_element(
                    'css', '#datagrid-row-r2-2-0 > td:nth-child(4) '
                    '> div > a:nth-child(2)').text, '操作(铭牌)不存在或显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_05(self):
        """文案界面设计——每页显示10条数据"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 分页下拉框选择10条/页
            Select(self.b.by_find_element(
                'css', '.pagination-page-list')).select_by_visible_text('10')
            self.addimg()
            List = []
            # 循环整个参会人员,添加进集合,计算本页有多少条数据
            for l in self.b.by_find_elements('css',
                                             '.datagrid-cell-rownumber'):
                List.append(l)
            self.assertTrue(len(List) <= 10, '超出10条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_06(self):
        """文案界面设计——每页显示20条数据"""
        # 选择10条数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            Select(self.b.by_find_element(
                'css', '.pagination-page-list')).select_by_visible_text('20')
            time.sleep(1)
            self.addimg()
            List = []
            for l in self.b.by_find_elements('css',
                                             '.datagrid-cell-rownumber'):
                List.append(l)
            self.assertTrue(len(List) <= 20, '超出20条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_07(self):
        """文案界面设计——每页显示50条数据"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            Select(self.b.by_find_element(
                'css', '.pagination-page-list')).select_by_visible_text('50')
            time.sleep(1)
            self.addimg()
            List = []
            for l in self.b.by_find_elements('css',
                                             '.datagrid-cell-rownumber'):
                List.append(l)
            self.assertTrue(len(List) <= 50, '超出50条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_08(self):
        """文案界面设计——每页显示100条数据"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            Select(self.b.by_find_element(
                'css', '.pagination-page-list')).select_by_visible_text('100')
            time.sleep(1)
            self.addimg()
            List = []
            for l in self.b.by_find_elements('css',
                                             '.datagrid-cell-rownumber'):
                List.append(l)
            self.assertTrue(len(List) <= 100, '超出100条数据')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_09(self):
        """文案界面设计——首页图标点击"""
        # 点击首页图标,需要回到第一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击首页图标
            self.b.by_find_element('css', '.pagination-first').click()
            time.sleep(1)
            self.addimg()
            # 断言跳转框内数字是否为1
            self.assertTrue(
                self.b.by_find_element(
                    'css',
                    'input.pagination-num').get_attribute('value') == '1',
                '回到首页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_010(self):
        """文案界面设计——尾页图标点击"""
        # 点击尾页图标,需要前往最后一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击尾页
            self.b.by_find_element('css', '.pagination-last').click()
            self.addimg()
            time.sleep(1)
            # 获取总页数
            count = self.b.by_find_element(
                'css',
                '#wrap > div > div.matter.clear > div.right_w.fr.clear >'
                ' div > div.nameplate_box > div > div.nameplate_w > div > '
                'div:nth-child(3) > div > div > div > div.datagrid-pager.pagination >'
                ' table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            count = count[1:-1]
            # 获取跳转框内的数字
            sum1 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            # # 断言共X页是否等于跳转框内的数字
            self.assertTrue(count == sum1, '前往尾页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_011(self):
        """文案界面设计——下一页图标点击"""
        # 点击下一页图标,需要回到下一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取页码输入框的数据
            sum1 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            # 点击下一页
            self.b.by_find_element('css', '.pagination-next').click()
            time.sleep(1)
            self.addimg()
            # 获取点击下一页后的输入框数据
            sum2 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            # 获取总页数
            count = self.b.by_find_element(
                'css',
                '#wrap > div > div.matter.clear > div.right_w.fr.clear >'
                ' div > div.nameplate_box > div > div.nameplate_w > div > '
                'div:nth-child(3) > div > div > div > div.datagrid-pager.pagination >'
                ' table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            count = count[1:-1]
            if count == '1' or count == '0':
                self.assertTrue(sum1 == sum2, '点击下一页失败')
            else:
                self.assertTrue(int(sum2) == int(sum1) + 1, '点击下一页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_012(self):
        """文案界面设计——上一页图标点击"""
        # 点击上一页图标,需要回到上一页数据
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取页码输入框的数据
            sum1 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            # 点击上一页
            self.b.by_find_element('css', '.pagination-prev').click()
            time.sleep(1)
            self.addimg()
            # 点击上一页后获取输入框的数据
            sum2 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            if sum1 == '1' or sum1 == '0':
                self.assertTrue(sum1 == sum2, '点击上一页失败')
            else:
                self.assertTrue(int(sum2) == (int(sum1) - 1), '点击上一页失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_013(self):
        """文案界面设计——页数搜索(页数框输入小于1的数)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 清空页数框
            self.b.by_find_element('css', '.pagination-num').clear()
            # 页数框输入0
            self.b.by_find_element('css', '.pagination-num').send_keys(0)
            self.addimg()
            # 模拟键盘回车
            self.b.by_find_element('css',
                                   '.pagination-num ').send_keys(Keys.ENTER)
            time.sleep(1)
            self.addimg()
            # 获取跳转后的输入框值
            sum2 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            self.assertTrue(sum2 == '1', '跳转至0页,跳转框数字为%s' % sum2)

            # 清空页数框
            self.b.by_find_element('css', '.pagination-num').clear()
            # 页数框输入输入负数
            self.b.by_find_element('css', '.pagination-num').send_keys(-1)
            self.addimg()
            # 模拟键盘回车
            self.b.by_find_element('css',
                                   '.pagination-num ').send_keys(Keys.ENTER)
            self.addimg()
            time.sleep(1)
            # 获取跳转后的输入框值
            sum2 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            self.assertTrue(sum2 == '1', '跳转至-1页,跳转框数字为%s' % sum2)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_014(self):
        """文案界面设计——页数搜索(页数框输入大于总页数的数)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 清空页数框
            self.b.by_find_element('css', '.pagination-num').clear()
            # 获取总页数
            count = self.b.by_find_element(
                'css',
                '#wrap > div > div.matter.clear > div.right_w.fr.clear >'
                ' div > div.nameplate_box > div > div.nameplate_w > div > '
                'div:nth-child(3) > div > div > div > div.datagrid-pager.pagination >'
                ' table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            count = count[1:-1]
            # 页数框输入总页数+1
            self.b.by_find_element(
                'css', '.pagination-num').send_keys(int(count) + 1)
            self.addimg()
            # 模拟键盘回车
            self.b.by_find_element('css',
                                   '.pagination-num ').send_keys(Keys.ENTER)
            time.sleep(1)
            self.addimg()
            # 获取跳转后的输入框值
            sum2 = self.b.by_find_element(
                'css', 'input.pagination-num').get_attribute('value')
            self.assertTrue(sum2 == count,
                            '跳转至%s页,跳转框数字为%s' % (int(count) + 1, sum2))
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_015(self):
        # 正确跳转界面暂时无法编写,数据无法创建过多
        print('暂时未编写')
        pass

    def test_wajm_at_016(self):
        """文案界面设计——总X数显示(总页数测试)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取每页数据量,默认为10条/页
            sum1 = Select(
                self.b.by_find_element(
                    'css',
                    '.pagination-page-list')).all_selected_options[0].text
            self.b.by_find_element('css', '.pagination-last').click()  # 点击尾页
            time.sleep(1)
            self.addimg()
            List = []
            # 获取最后一页数据
            for l in self.b.by_find_elements('css',
                                             '.datagrid-cell-rownumber'):
                List.append(l)
            # 获取跳转框页码,
            sum2 = int(
                self.b.by_find_element(
                    'css', 'input.pagination-num').get_attribute('value'))
            # 计算总数据:(页码-1)*每页数据条数+最后一页数据
            if sum2 == 0 or sum2 == 1:
                count = int(len(List))
            else:
                count = (sum2 - 1) * int(sum1) + int(len(List))
            # 获取总页数
            number = self.b.by_find_element(
                'css',
                '#wrap > div > div.matter.clear > div.right_w.fr.clear >'
                ' div > div.nameplate_box > div > div.nameplate_w > div > '
                'div:nth-child(3) > div > div > div > div.datagrid-pager.pagination >'
                ' table > tbody > tr > td:nth-child(8) > span').text
            # 截取共X页中的数字
            numcount = number[1:-1]
            if count == 0:
                self.assertTrue(number == '共0页', '页面无数据,总页数显示共%s页' % numcount)
            elif count > 10:
                # 计算总页数
                pages = (count - int(len(List))) / 10 + 1
                self.assertTrue(
                    int(numcount) == pages, '共%s页,但显示共%s页' % (pages, numcount))
            elif count <= 10:
                self.assertTrue(int(numcount) == 1, '共1页,但显示共%s页' % numcount)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_wajm_at_017(self):
        """文案界面设计——分组条数显示(左下角的分组记录显示)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 获取每页数据量,默认为10条/页
            sum1 = Select(
                self.b.by_find_element(
                    'css',
                    '.pagination-page-list')).all_selected_options[0].text
            self.b.by_find_element('css', '.pagination-last').click()  # 点击尾页
            time.sleep(1)
            self.addimg()
            List = []
            # 获取最后一页数据
            for l in self.b.by_find_elements('css',
                                             '.datagrid-cell-rownumber'):
                List.append(l)
            # 获取跳转框页码,
            sum2 = int(
                self.b.by_find_element(
                    'css', 'input.pagination-num').get_attribute('value'))
            # 计算总数据:(页码-1)*每页数据条数+最后一页数据
            if sum2 == 0 or sum2 == 1:
                count = int(len(List))
            else:
                count = (sum2 - 1) * int(sum1) + int(len(List))

            # 点击首页图标
            self.b.by_find_element('css', '.pagination-first').click()
            time.sleep(1)
            self.addimg()
            # 获取左下角文字
            records = self.b.by_find_element('css', '.pagination-info').text
            # 三种情况断言,页面无数据,页面数据小于每页数据量,页面数据大于每页数据量
            if count == 0:
                self.assertTrue(records == '显示0到0,共0记录', '页面无数据,左下角显示错误')
            elif count > int(sum1):
                self.assertTrue(records == '显示1到%s,共%s记录' % (int(sum1), count),
                                '页面总数据大于10,左下角显示错误,详情请查看截图')
            else:
                self.assertTrue(records == '显示1到%s,共%s记录' % (count, count),
                                '页面总数据小于或等于10,左下角显示错误,详情请查看截图')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise
예제 #7
0
class Test_WelcomeScreen(unittest.TestCase):
    def setUp(self):
        self.sc = Config()
        self.b = BrowserDriver()
        self.driver = self.b.OpenBrowser()
        self.driver.implicitly_wait(5)  # 全局隐形等待30S
        self.imgs = []
        self.ym = YamlWrite()
        # 每次执行用例前都登陆网页
        self.b.by_find_element('name', 'account').send_keys(
            self.sc.getConfig('User').get('username'))
        self.b.by_find_element('name', 'password').send_keys(
            self.sc.getConfig('User').get('password'))
        self.b.by_find_element('id', 'login').click()
        # 先前往用户列表判断是否用用户
        self.b.by_find_element('link_text', '用户列表').click()
        if self.b.isElementExist('xpath',
                                 '//*[@id="datagrid-row-r1-1-0"]/td[4]/div'
                                 ) == False:  # 判断列表内是否有用户,如果没有就创建用户
            # 创建10个用户
            for i in range(1, 20):
                if i % 2:
                    self.b.by_find_element('class', 'l-btn-text').click()
                    self.b.by_find_element('name',
                                           'account').send_keys('admin%s' % i)
                    self.b.by_find_element('name',
                                           'password').send_keys('123456')
                    self.b.by_find_element('name',
                                           'username').send_keys('测试用户')
                    self.b.by_find_element(
                        'xpath',
                        '//*[@id="layui-layer%s"]/div[2]/form/div[2]/button[1]'
                        % i).click()
                    time.sleep(1)
                else:
                    continue
        # 获取共x记录
        self.usercount = self.b.by_find_element('css', '.pagination-info').text
        self.usercount = self.usercount[8:-2]
        # 再进入会议列表
        self.b.by_find_element('link_text', '会议列表').click()
        # 获取总页数
        self.page = self.b.by_find_element(
            'xpath',
            '//*[@id="wrap"]/div/div[3]/div[2]/div/div[2]/div/div/div[3]/table/tbody/tr/td[8]/span'
        ).text
        self.page = self.page[1:-1]
        List = []
        # 判断会议列表数据是否为空,或只有1页
        if self.page == '0' or self.page == '1':
            # 将列表所有的会议名称添加进集合
            for i in self.b.by_find_elements('css', '.datagrid-cell-c1-name'):
                List.append(i.text)
        else:
            for p in range(int(self.page) - 1):
                for i in self.b.by_find_elements('css',
                                                 '.datagrid-cell-c1-name'):
                    List.append(i.text)
                self.b.by_find_element('css', '.pagination-next').click()
                time.sleep(1)
        # 每次执行用例都判断会议列表中是否有数据
        if '测试铭牌设置' not in List:
            # 点击新增会议
            self.b.by_find_element('link_text', '新增会议').click()
            # 会议名称
            self.b.by_find_element('name', 'name').send_keys('测试铭牌设置')
            # 点击开始时间
            self.b.by_find_element(
                'css',
                '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                'span:nth-child(2) > input.textbox-text.validatebox-text'
            ).click()
            # 点击结束时间
            self.b.by_find_element(
                'css',
                '#add_meeting > div > div:nth-child(2) > div.Participants_fr.fl > '
                'span:nth-child(5) > input.textbox-text.validatebox-text'
            ).click()
            # 点击增加时间
            self.b.by_find_element(
                'css',
                'body > div:nth-child(26) > div > div:nth-child(2) > span > '
                'span > a > a.spinner-arrow-up').click()
            # 点击确定
            self.b.by_find_element(
                'css',
                'body > div:nth-child(26) > div > div.datebox-button > table > '
                'tbody > tr > td:nth-child(2) > a').click()
            # 点击新增确定
            self.b.by_find_element(
                'css',
                '#add_meeting > div > div:nth-child(7) > div:nth-child(1) > button'
            ).click()
            time.sleep(1)
            self.b.by_find_element('link_text', '铭牌设置').click()
        else:
            self.b.by_find_element('link_text', '测试铭牌设置').click()
            # 进入铭牌设置界面
            self.b.by_find_element('link_text', '铭牌设置').click()

    def tearDown(self):
        # 结束用例后先退出浏览器,防止cooking保存
        self.b.QuitBrowser()

    def addimg(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True

    '''欢迎界面设计'''

    def test_hyjm_at_01(self):
        """欢迎界面设计——检查页面标题"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 获取页面title
            title = self.b.by_find_element('css', '.personnel.fl').text
            self.assertEqual('铭牌设置', title, '页面标题显示错误:%s' % title)
            print('\n页面标题:%s' % title)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_02(self):
        """欢迎界面设计——检查顶部标题文字(设计页面)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 获取界面设计title
            uititle = self.b.by_find_element(
                'css', '.nameplate_nav.clear > span:nth-child(1)').text
            self.assertEqual('欢迎界面设计', uititle, '欢迎界面设计标题显示错误:%s' % uititle)
            print('\n欢迎界面设计标题:%s' % uititle)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_03(self):
        """欢迎界面设计——检查欢迎界面设计功能"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 背景标题
            bgtitle = self.b.by_find_element(
                'css',
                '#form_view > div.nax > div.m-nameplate-left-content.fl '
                '> div.nax_one.f-flex-content > span').text
            self.assertEqual('背景', bgtitle, '背景标题显示错误:%s' % bgtitle)
            # 更换背景颜色
            ghbgs = self.b.by_find_element(
                'css',
                '#form_view > div.nax > div.m-nameplate-left-content.fl > '
                'div.nax_one.f-flex-content > div:nth-child(2) > label.label_one'
            ).text
            self.assertEqual('更换背景色', ghbgs, '更换背景颜色文字显示错误:%s' % ghbgs)
            # 更换背景
            ghbg = self.b.by_find_element(
                'css',
                '#form_view > div.nax > div.m-nameplate-left-content.fl > '
                'div.nax_one.f-flex-content > div:nth-child(2) > label.label_two'
            ).text
            self.assertEqual('更换背景', ghbg, '更换背景文字显示错误:%s' % ghbg)
            # 更换背景(按钮)
            ghbgan = self.b.by_find_element(
                'css',
                '#form_view > div.nax > div.m-nameplate-left-content.fl > '
                'div.nax_one.f-flex-content > div.clear.f-flex-item.f-nameplate-left-btn-box > div.o_o'
            ).text
            self.assertEqual('更换背景', ghbgan, '更换背景(按钮)文字显示错误:%s' % ghbgan)

            # 内容标题
            contenttitle = self.b.by_find_element(
                'css',
                '#form_view > div.nax > div.m-nameplate-left-content.fl '
                '> div.nax_two.clear.f-flex-content > span').text
            self.assertEqual('内容', contenttitle, '内容标题显示错误:%s' % contenttitle)
            # 显示职位
            xxzw = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[1]/div[1]'
            ).text
            self.assertEqual('显示职位', xxzw, '显示职位文字显示错误:%s' % xxzw)
            # 显示单位
            xxdw = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[1]/div[2]'
            ).text
            self.assertEqual('显示单位', xxdw, '显示单位文字显示错误:%s' % xxdw)
            # 会议名称
            hymc = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[2]/div[1]'
            ).text
            self.assertEqual('会议名称', hymc, '会议名称文字显示错误:%s' % hymc)
            # 会议时间
            hysj = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[2]/div[2]'
            ).text
            self.assertEqual('会议时间', hysj, '会议时间文字显示错误:%s' % hysj)
            # 主持人
            zcr = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[3]/div[1]'
            ).text
            self.assertEqual('主持人', zcr, '主持人文字显示错误:%s' % zcr)
            # 欢迎词
            hyc = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[3]/div[2]'
            ).text
            self.assertEqual('欢迎词', hyc, '欢迎词文字显示错误:%s' % hyc)
            # 参会人
            chrs = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[2]/div/div[4]/div'
            ).text
            self.assertEqual('参会人', chrs, '参会人文字显示错误:%s' % chrs)

            # 姓名
            xmtitle = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[3]/div[1]/span').text
            self.assertEqual('姓名', xmtitle, '欢迎词标题显示错误:%s' % xmtitle)
            # 字号大小
            zhdx = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[3]/div[1]/div/div[1]'
            ).text
            self.assertTrue('字号大小' in zhdx, '字号大小文字显示错误:%s' % zhdx)
            # 字体类型
            zhlx = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[3]/div[1]/div/div[2]'
            ).text
            self.assertTrue('字体类型' in zhlx, '字体类型文字显示错误:%s' % zhlx)
            # 文本颜色
            wbys = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[3]/div[1]/div/div[3]'
            ).text
            self.assertTrue('文本颜色' in wbys, '文本颜色文字显示错误:%s' % wbys)

            # 操作
            cztitle = self.b.by_find_element(
                'xpath', '//*[@id="form_view"]/div[2]/div[1]/div[4]/i').text
            self.assertEqual('操作', cztitle, '操作标题显示错误:%s' % cztitle)
            # 保存
            bc = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[4]/div/button[1]').text
            self.assertEqual('保存', bc, '保存文字显示错误:%s' % bc)
            # 重置
            cz = self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[4]/div/button[2]').text
            self.assertEqual('重置', cz, '重置文字显示错误:%s' % cz)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_04(self):
        """欢迎界面设计——'更换背景色'选中(后方出现颜色选择器)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 判断'更换背景色'是否被选中
            if self.b.by_find_element(
                    'css',
                    '.label_one > input[name=v_usebcolor]').is_selected():
                self.assertTrue(self.b.isElementExist('css', '#cp5'),
                                '更换背景色被选中,颜色选择器不存在')
                self.assertTrue(
                    self.b.isElementExist('css', '#v-color-background'),
                    '更换背景色被选中,颜色下拉框不存在')
            else:
                self.b.by_find_element(
                    'css', '.label_one > input[name=v_usebcolor]').click()
                self.addimg()
                self.assertTrue(self.b.isElementExist('css', '#cp5'),
                                '更换背景色被选中,颜色选择器不存在')
                self.assertTrue(
                    self.b.isElementExist('css', '#v-color-background'),
                    '更换背景色被选中,颜色下拉框不存在')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_05(self):
        """欢迎界面设计——更换背景色(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 判断'更换背景色'是否被选中
            if self.b.by_find_element(
                    'css',
                    '.label_one > input[name=v_usebcolor]').is_selected():
                # 点击颜色选择器
                self.b.by_find_element('css', '#v-color-background').click()
            else:
                # 点击更换背景颜色选择按钮
                self.b.by_find_element(
                    'css', '.label_one > input[name=v_usebcolor]').click()
                # 点击颜色选择器
                self.b.by_find_element('css', '#v-color-background').click()
            # 循环所有的colorpicker选择器
            for i in self.b.by_find_elements('css', '.colorpicker'):
                if i.is_displayed():
                    # 清空颜色输入框
                    i.find_element_by_css_selector(
                        '.colorpicker_hex > input').clear()
                    # 颜色输入
                    i.find_element_by_css_selector(
                        '.colorpicker_hex > input').send_keys('0066ff')
                    i.find_element_by_css_selector(
                        '.colorpicker_submit').click()
                    self.addimg()
                    self.b.by_find_element('css',
                                           '#v-color-background').click()
                    # 获取R值
                    R = i.find_element_by_css_selector(
                        '.colorpicker_rgb_r > input').get_attribute('value')
                    # 获取G值
                    G = i.find_element_by_css_selector(
                        '.colorpicker_rgb_g > input').get_attribute('value')
                    # 获取B值
                    B = i.find_element_by_css_selector(
                        '.colorpicker_rgb_b > input').get_attribute('value')
                    # 获取设计面板的背景颜色
                    style = self.b.by_find_element(
                        'css', '#viDiv').get_attribute('style')
                    self.assertTrue(R and G and B in style, '设计面板颜色未改变')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_06(self):
        """欢迎界面设计——点击更换背景,查看是否出现背景选择框"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 判断'更换背景'是否被选中
            if self.b.by_find_element(
                    'css',
                    '.label_two > input[name=v_usebcolor]').is_selected():
                # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            else:
                # 点击更换背景选择按钮
                self.b.by_find_element(
                    'css', '.label_two > input[name=v_usebcolor]').click()
                # # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            self.addimg()
            self.assertTrue(
                self.b.isElementExist('css', '.layer-ext-espresso'),
                '点击更换背景,未出现背景选择框')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_07(self):
        """欢迎界面设计——更换自带背景(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 判断'更换背景'是否被选中
            if self.b.by_find_element(
                    'css',
                    '.label_two > input[name=v_usebcolor]').is_selected():
                # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            else:
                # 点击更换背景选择按钮
                self.b.by_find_element(
                    'css', '.label_two > input[name=v_usebcolor]').click()
                # # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            # 选择第三个背景
            self.b.by_find_element(
                'css',
                '#mCSB_1_container > ul > li:nth-child(3) > a > img').click()
            # 点击确定
            self.b.by_find_element('css', '#nameplate-img').click()
            self.addimg()
            # 获取背景的src
            src = self.b.by_find_element(
                'css', '#mCSB_1_container > ul > li:nth-child(3) > a > img'
            ).get_attribute('src')
            # 获取背景板的style
            style = self.b.by_find_element('css',
                                           '#viDiv').get_attribute('style')
            src = src[-14:]
            self.assertTrue(src in style, '背景更换失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_08(self):
        """欢迎界面设计——更换本地背景(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 判断'更换背景'是否被选中
            if self.b.by_find_element(
                    'css',
                    '.label_two > input[name=v_usebcolor]').is_selected():
                # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            else:
                # 点击更换背景选择按钮
                self.b.by_find_element(
                    'css', '.label_two > input[name=v_usebcolor]').click()
                # # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            # 选择第三个背景
            self.b.by_find_element('css',
                                   '.webuploader-element-invisible').send_keys(
                                       'D:\\无纸化测试文件\\测试图片.png')
            self.addimg()
            # 获取背景板的style
            style = self.b.by_find_element('css',
                                           '#viDiv').get_attribute('style')
            self.assertTrue('/public/prapeless/img/' in style, '背景更换失败')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_09(self):
        """欢迎界面设计——'显示职位'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击显示职务
            self.b.by_find_element('css', '#v-showrank').click()
            self.addimg()
            # 判断'显示职位'是否被选中
            if self.b.by_find_element('css', '#v-showrank').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivE').is_displayed() == True,
                    '显示职位被选中,背景板未显示职务')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivE').is_displayed() == False,
                    '显示职位未选中,背景板显示职务')
            # 点击显示职务
            self.b.by_find_element('css', '#v-showrank').click()
            self.addimg()
            # 判断'显示职位'是否被选中
            if self.b.by_find_element('css', '#v-showrank').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivE').is_displayed() == True,
                    '显示职位被选中,背景板未显示职务')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivE').is_displayed() == False,
                    '显示职位未选中,背景板显示职务')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_010(self):
        """欢迎界面设计——'显示单位'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击显示单位
            self.b.by_find_element('css', '#v-showcompany').click()
            self.addimg()
            # 判断'显示单位'是否被选中
            if self.b.by_find_element('css', '#v-showcompany').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivF').is_displayed() == True,
                    '显示单位被选中,背景板未显示单位')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivF').is_displayed() == False,
                    '显示单位未选中,背景板显示单位')
            # 点击显示单位
            self.b.by_find_element('css', '#v-showcompany').click()
            self.addimg()
            # 判断'显示单位'是否被选中
            if self.b.by_find_element('css', '#v-showcompany').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivF').is_displayed() == True,
                    '显示单位被选中,背景板未显示单位')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivF').is_displayed() == False,
                    '显示单位未选中,背景板显示单位')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_011(self):
        """欢迎界面设计——'会议名称'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击会议名称
            self.b.by_find_element('css', '#showmeeting').click()
            self.addimg()
            # 判断'会议名称'是否被选中
            if self.b.by_find_element('css', '#showmeeting').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivG').is_displayed() == True,
                    '会议名称被选中,背景板未显示会议名称')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivG').is_displayed() == False,
                    '会议名称未选中,背景板显示会议名称')
            # 点击会议名称
            self.b.by_find_element('css', '#showmeeting').click()
            self.addimg()
            # 判断'会议名称'是否被选中
            if self.b.by_find_element('css', '#showmeeting').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivG').is_displayed() == True,
                    '会议名称被选中,背景板未显示会议名称')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivG').is_displayed() == False,
                    '会议名称未选中,背景板显示会议名称')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_012(self):
        """欢迎界面设计——'会议时间'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击会议时间
            self.b.by_find_element('css', '#showtime').click()
            self.addimg()
            # 判断'会议时间'是否被选中
            if self.b.by_find_element('css', '#showtime').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivH').is_displayed() == True,
                    '会议时间被选中,背景板未显示会议时间')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivH').is_displayed() == False,
                    '会议时间未选中,背景板显示会议时间')
            # 点击会议时间
            self.b.by_find_element('css', '#showtime').click()
            self.addimg()
            # 判断'会议时间'是否被选中
            if self.b.by_find_element('css', '#showtime').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivH').is_displayed() == True,
                    '会议时间被选中,背景板未显示会议时间')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivH').is_displayed() == False,
                    '会议时间未选中,背景板显示会议时间')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_013(self):
        """欢迎界面设计——'主持人'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击主持人
            self.b.by_find_element('css', '#showhost').click()
            self.addimg()
            # 判断'主持人'是否被选中
            if self.b.by_find_element('css', '#showhost').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivI').is_displayed() == True,
                    '主持人被选中,背景板未显示主持人')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivI').is_displayed() == False,
                    '主持人未选中,背景板显示主持人')
            # 点击主持人
            self.b.by_find_element('css', '#showhost').click()
            self.addimg()
            # 判断'主持人'是否被选中
            if self.b.by_find_element('css', '#showhost').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivI').is_displayed() == True,
                    '主持人被选中,背景板未显示主持人')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivI').is_displayed() == False,
                    '主持人未选中,背景板显示主持人')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_014(self):
        """欢迎界面设计——'欢迎词'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击欢迎词
            self.b.by_find_element('css', '#showwords').click()
            self.addimg()
            # 判断'欢迎词'是否被选中
            if self.b.by_find_element('css', '#showwords').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivJ').is_displayed() == True,
                    '欢迎词被选中,背景板未显示欢迎词')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivJ').is_displayed() == False,
                    '欢迎词未选中,背景板显示欢迎词')
            # 点击欢迎词
            self.b.by_find_element('css', '#showwords').click()
            self.addimg()
            # 判断'欢迎词'是否被选中
            if self.b.by_find_element('css', '#showwords').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivJ').is_displayed() == True,
                    '欢迎词被选中,背景板未显示欢迎词')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivJ').is_displayed() == False,
                    '欢迎词未选中,背景板显示欢迎词')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_015(self):
        """欢迎界面设计——'参会人'显示与隐藏(该用例请运行结果未必准确,请查看截图)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击参会人
            self.b.by_find_element('css', '#v-showusername').click()
            self.addimg()
            # 判断'参会人'是否被选中
            if self.b.by_find_element('css', '#v-showusername').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivD').is_displayed() == True,
                    '参会人被选中,背景板未显示参会人')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivD').is_displayed() == False,
                    '参会人未选中,背景板显示参会人')
            # 点击参会人
            self.b.by_find_element('css', '#v-showusername').click()
            self.addimg()
            # 判断'参会人'是否被选中
            if self.b.by_find_element('css', '#v-showusername').is_selected():
                self.assertTrue(
                    self.b.by_find_element('css',
                                           '#dragDivD').is_displayed() == True,
                    '参会人被选中,背景板未显示参会人')
            else:
                self.assertTrue(
                    self.b.by_find_element(
                        'css', '#dragDivD').is_displayed() == False,
                    '参会人未选中,背景板显示参会人')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_016(self):
        """欢迎界面设计——铭牌保存(更换背景,取消内容显示后保存)"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 判断'更换背景'是否被选中
            if self.b.by_find_element(
                    'css',
                    '.label_two > input[name=v_usebcolor]').is_selected():
                # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
            else:
                # 点击更换背景选择按钮
                self.b.by_find_element(
                    'css', '.label_two > input[name=v_usebcolor]').click()
                # # 点击'更换背景'
                self.b.by_find_element('css', '.o_o').click()
                self.addimg()
            # 选择第三个背景
            self.b.by_find_element('css',
                                   '.webuploader-element-invisible').send_keys(
                                       'D:\\无纸化测试文件\\测试图片.png')
            # 循环取消所有的内容显示
            for i in self.b.by_find_elements('css',
                                             '.one_n.f-flex-item > input'):
                if i.is_selected():
                    i.click()
                    self.addimg()
            # 点击保存
            self.b.by_find_element(
                'xpath',
                '//*[@id="form_view"]/div[2]/div[1]/div[4]/div/button[1]'
            ).click()
            # 刷新网页
            self.b.refresh()
            self.addimg()
            # 循环内容显示选中状态,并断言
            for i in self.b.by_find_elements('css',
                                             '.one_n.f-flex-item > input'):
                self.assertTrue(
                    i.is_selected() == False,
                    '保存刷新页面后,%s显示选中状态' % i.find_element_by_xpath('..').text)
            for j in self.b.by_find_elements('css', '#viDiv > div'):
                self.assertTrue(j.is_displayed() == False,
                                '保存刷新页面后,%s显示在背景板中' % j.text)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_hyjm_at_017(self):
        """欢迎界面设计——重置"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 点击重置
            self.b.by_find_element('css', '#view-reset').click()
            # 点击确定
            self.b.by_find_element('css', '.layui-layer-btn0').click()
            # logger.info(self.driver.page_source)
            # self.addimg()
            # self.assertEqual('设置成功', self.b.by_find_element('css', '.layui-layer-content.layui-layer-padding').text,
            #                  '设置成功,提示:%s 错误' % self.b.by_find_element('css',
            #                                                       '.layui-layer-content.layui-layer-padding').text)
            time.sleep(1)
            self.addimg()
            # 循环内容显示选中状态,并断言
            for i in self.b.by_find_elements('css',
                                             '.one_n.f-flex-item > input'):
                self.assertTrue(
                    i.is_selected() == True,
                    '保存刷新页面后,%s显示未选中状态' % i.find_element_by_xpath('..').text)
            for j in self.b.by_find_elements('css', '#viDiv > div'):
                if j.get_attribute('id') == 'dragDivL':
                    continue
                self.assertTrue(j.is_displayed() == True,
                                '保存刷新页面后,%s未显示在背景板中' % j.text)
            # 获取设计面板的背景
            style = self.b.by_find_element('css',
                                           '#viDiv').get_attribute('style')
            self.assertTrue('/image/005.png' in style, '背景未重置')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise
예제 #8
0
class Test_OrganizationalStructure(unittest.TestCase):
    def setUp(self):
        self.sc = Config()
        self.b = BrowserDriver()
        self.driver = self.b.OpenBrowser()
        self.driver.implicitly_wait(5)  # 全局隐形等待30S
        self.imgs = []
        self.ym = YamlWrite()
        # 每次执行用例前都登陆网页
        self.b.by_find_element('name', 'account').send_keys(
            self.sc.getConfig('User').get('username'))
        self.b.by_find_element('name', 'password').send_keys(
            self.sc.getConfig('User').get('password'))
        self.b.by_find_element('id', 'login').click()
        # 点击用户分组
        self.b.by_find_element('link_text', '组织架构').click()

    def tearDown(self):
        # 结束用例后先退出浏览器,防止cooking保存
        self.b.QuitBrowser()

    def addimg(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True

    '''测试用例'''

    def test_zzjg_at_01(self):
        """组织架构界面——标题显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 断言顶标题是否存在
            self.assertEqual(
                '组织架构',
                self.b.by_find_element('css', '.personnel.fl').text, '标题显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_02(self):
        """组织架构界面——组织架构顶部栏显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            # 断言顶部栏元素是否存在
            self.assertEqual('新增单位',
                             self.b.by_find_element('css', '.l-btn-text').text,
                             '顶部栏,新增单位显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_03(self):
        """组织架构界面——组织架构字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            self.assertEqual(
                '名称',
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="mCSB_1_container"]/div/div/div[2]/div[2]/div[1]'
                    '/div/table/tbody/tr/td[1]/div/span[1]').text, '名称字段显示错误')
            self.assertEqual(
                '操作',
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="mCSB_1_container"]/div/div/div[2]/div[2]/div[1]'
                    '/div/table/tbody/tr/td[2]/div/span[1]').text, '操作字段显示错误')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_04(self):
        """组织架构界面——新增单位字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在单位,false创建
            if self.b.isElementExist('css', '.datagrid-row') == False:
                # 点击'新增单位'
                self.b.by_find_element('css', '.l-btn-text').click()
                # 单位名称输入
                self.b.by_find_element('name', 'name').send_keys('测试新增单位')
                # 点击确定
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]'
                ).click()
                time.sleep(1)
                self.addimg()
            self.addimg()
            # 获取第一个部门的node-id
            value = self.b.by_find_element(
                'css',
                '#mCSB_1_container > div > div > div.datagrid-view > div.datagrid-view2 > '
                'div.datagrid-body > table > tbody > tr:nth-child(1)'
            ).get_attribute('node-id')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(1) > div > span.tree-title'
                    % value), '名称字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(1)'
                    % value), '新增部门字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(2)'
                    % value), '编辑字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(3)'
                    % value), '编辑字段不存在')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_05(self):
        """组织架构界面——新增部门字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在单位,false创建
            if self.b.isElementExist('css', '.datagrid-row') == False:
                # 点击'新增单位'
                self.b.by_find_element('css', '.l-btn-text').click()
                # 单位名称输入
                self.b.by_find_element('name', 'name').send_keys('测试新增单位')
                # 点击确定
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]'
                ).click()
                time.sleep(1)
                self.addimg()
            # 获取第一个部门的node-id
            d_nodeid = self.b.by_find_element(
                'css',
                '#mCSB_1_container > div > div > div.datagrid-view > div.datagrid-view2 > '
                'div.datagrid-body > table > tbody > tr:nth-child(1)'
            ).get_attribute('node-id')
            if self.b.isElementExist('css', '.treegrid-tr-tree') == False:
                # 点击新增部门
                self.b.by_find_element(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(1)'
                    % d_nodeid).click()
                # 部门名称输入
                self.b.by_find_element('name', 'name').send_keys('测试新增部门')
                # 点击确认
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]'
                ).click()
                time.sleep(1)
                self.addimg()
            b_nodeid = self.b.by_find_element(
                'css', '#mCSB_1_container > div > div > div.datagrid-view > '
                'div.datagrid-view2 > div.datagrid-body > table > tbody > '
                'tr.treegrid-tr-tree > td > div > table > tbody > tr:nth-child(1)'
            ).get_attribute('node-id')
            self.addimg()
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(1) > div > span.tree-title'
                    % b_nodeid), '名称字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(1)'
                    % b_nodeid), '新增职位字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(2)'
                    % b_nodeid), '编辑字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(3)'
                    % b_nodeid), '编辑字段不存在')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_06(self):
        """组织架构界面——新增职位字段显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 判断是否存在单位,false创建
            if self.b.isElementExist('css', '.datagrid-row') == False:
                # 点击'新增单位'
                self.b.by_find_element('css', '.l-btn-text').click()
                # 单位名称输入
                self.b.by_find_element('name', 'name').send_keys('测试新增单位')
                # 点击确定
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]'
                ).click()
                time.sleep(1)
                self.addimg()
            # 获取第一个单位的node-id
            d_nodeid = self.b.by_find_element(
                'css',
                '#mCSB_1_container > div > div > div.datagrid-view > div.datagrid-view2 > '
                'div.datagrid-body > table > tbody > tr:nth-child(1)'
            ).get_attribute('node-id')
            # 判断第一个单位内是否存在部门
            if self.b.isElementExist('css', '.treegrid-tr-tree') == False:
                # 点击新增部门
                self.b.by_find_element(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(1)'
                    % d_nodeid).click()
                # 部门名称输入
                self.b.by_find_element('name', 'name').send_keys('测试新增部门')
                # 点击确认
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]'
                ).click()
                time.sleep(1)
                self.addimg()
            # 获取第一个部门的node-id
            b_nodeid = self.b.by_find_element(
                'css', '#mCSB_1_container > div > div > div.datagrid-view > '
                'div.datagrid-view2 > div.datagrid-body > table > tbody > '
                'tr.treegrid-tr-tree > td > div > table > tbody > tr:nth-child(1)'
            ).get_attribute('node-id')
            # 判断第一个部门内是否存在职位
            if self.b.isElementExist(
                    'xpath',
                    '//*[@id="mCSB_1_container"]/div/div/div[2]/div[2]/div[2]/table/tbody/tr[2]/td/div/table/tbody/tr[2]'
            ) == False:
                # 点击新增职位
                self.b.by_find_element(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(1)'
                    % b_nodeid).click()
                # 职位名称输入
                self.b.by_find_element(
                    'css',
                    '#layui-layer1 > div.layui-layer-content > form > div.middle > div > div > input'
                ).send_keys('测试新增职位')
                # 点击确认
                self.b.by_find_element(
                    'xpath',
                    '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]'
                ).click()
                time.sleep(1)
                self.addimg()

            z_nodeid = self.b.by_find_element(
                'xpath',
                '//*[@id="mCSB_1_container"]/div/div/div[2]/div[2]/div[2]/table/tbody/'
                'tr[2]/td/div/table/tbody/tr[2]/td/div/table/tbody/tr[1]'
            ).get_attribute('node-id')
            self.addimg()
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(1) > div > span.tree-title'
                    % z_nodeid), '名称字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(1)'
                    % z_nodeid), '新增职位字段不存在')
            self.assertTrue(
                self.b.isElementExist(
                    'css',
                    '#datagrid-row-r1-2-%s > td:nth-child(2) > div > a:nth-child(3)'
                    % z_nodeid), '编辑字段不存在')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_07(self):
        """组织架构界面——新增单位测试"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击'新增单位'
            self.b.by_find_element('css', '.l-btn-text').click()
            # 单位名称输入
            self.b.by_find_element('name', 'name').send_keys('测试新增单位')
            # 获取输入的单位名称
            name = self.b.by_find_element('name',
                                          'name').get_attribute('value')
            # 点击确定
            self.b.by_find_element(
                'xpath',
                '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[1]').click(
                )
            time.sleep(1)
            self.addimg()
            List = []
            for t in self.b.by_find_elements('css', '.tree-title'):
                List.append(t.text)
            logger.info(List)
            self.assertTrue(name in List, '新增单位未显示在列表中')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_zzjg_at_08(self):
        """组织架构界面——新增单位重置按钮测试"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            # 点击'新增单位'
            self.b.by_find_element('css', '.l-btn-text').click()
            # 单位名称输入
            self.b.by_find_element('name', 'name').send_keys('测试新增单位')
            # 点击重置
            self.b.by_find_element(
                'xpath',
                '//*[@id="layui-layer1"]/div[2]/form/div[2]/button[2]').click(
                )
            # 获取输入框的值
            name = self.b.by_find_element('name',
                                          'name').get_attribute('value')
            self.assertTrue(name == '', '重置功能无效')
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.exception('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise
예제 #9
0
class Test_UserGroup(unittest.TestCase):
    def setUp(self):
        self.sc = Config()
        self.b = BrowserDriver()
        self.driver = self.b.OpenBrowser()
        self.driver.implicitly_wait(10)  # 全局隐形等待30S
        self.imgs = []
        self.ym = YamlWrite()
        # 每次执行用例前都登陆网页
        self.b.by_find_element('name', 'account').send_keys(
            self.sc.getConfig('User').get('username'))
        self.b.by_find_element('name', 'password').send_keys(
            self.sc.getConfig('User').get('password'))
        self.b.by_find_element('id', 'login').click()
        # 点击用户分组
        self.b.by_find_element(
            'css',
            '#wrap > div > div.matter.clear > div.left_b.clear.fl.pob > div > div:nth-child(2) > div > ul > a:nth-child(2)'
        ).click()
        # if self.b.isElementExist('xpath', '//*[@id="datagrid-row-r1-1-0"]/td[4]/div'):
        #     self.b.by_find_element('css','.datagrid-header-check').click()
        #     self.b.by_find_element('css','a.easyui-linkbutton:nth-child(4) > span:nth-child(1) > span:nth-child(1)').click()
        #     self.b.by_find_element('css','.layui-layer-btn0').click()

    def tearDown(self):
        # 结束用例后先退出浏览器,防止cooking保存
        self.b.QuitBrowser()

    # 截图
    def addimg(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True

    def test_yhfz_at_01(self):
        """用户分组界面——用户列表顶栏显示"""
        try:
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.addimg()
            self.assertEqual(
                '新增分组',
                self.b.by_find_element(
                    'css', '#add-win > span > span.l-btn-text').text)
            self.assertEqual(
                '删除',
                self.b.by_find_element(
                    'css',
                    '#common_operate > a:nth-child(2) > span > span.l-btn-text'
                ).text)
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.info('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise
예제 #10
0
class Test_Login(unittest.TestCase):
    def setUp(self):
        self.sc = Config()
        self.b = BrowserDriver()
        self.driver = self.b.OpenBrowser()
        self.driver.implicitly_wait(30)  # 全局隐形等待30S
        self.imgs = []
        self.ym = YamlWrite()

    def tearDown(self):
        self.b.QuitBrowser()

    def addimg(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True

    def test_login_correct(self):
        """ 测试用户名密码正确登录"""
        try:
            # 将用例名称写入casename.yaml文件中
            self.ym.Write_Yaml(
                self.sc.getCasename_path(),
                {'casename': '用例%s执行开始' % sys._getframe().f_code.co_name})
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.b.by_find_element('name', 'account').send_keys(
                self.sc.getConfig('User').get('username'))
            self.b.by_find_element('name', 'password').send_keys(
                self.sc.getConfig('User').get('password'))
            self.b.driver.implicitly_wait(30)  # 设置全局隐形等待时间
            self.addimg()
            self.assertEqual('无纸化会议1', self.b.get_page_title())
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.info('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise

    def test_login_error_1(self):
        """ 测试用户名正确密码错误登录"""
        try:
            # 将用例名称写入casename.yaml文件中
            self.ym.Write_Yaml(
                self.sc.getCasename_path(),
                {'casename': '用例%s执行开始' % sys._getframe().f_code.co_name})
            logger.info('开始执行用例%s' % sys._getframe().f_code.co_name)
            self.b.by_find_element('name', 'account').send_keys(
                self.sc.getConfig('User').get('username'))
            self.b.by_find_element('name', 'password').send_keys('123')
            self.b.driver.implicitly_wait(30)  # 设置全局隐形等待时间
            self.addimg()
            self.assertEqual('无纸化会议1', self.b.get_page_title())
            logger.info('用例%s执行成功' % sys._getframe().f_code.co_name)
        except:
            logger.info('用例%s执行失败' % sys._getframe().f_code.co_name)
            raise