예제 #1
0
    def wait_element_clickable(self, locator, img_info, timeout=15, poll_frequency=0.5):

        """
        等待元素可点击
        :param locator: 定位表达式
        :param img_info: 错误截图文件名
        :param timeout: 等待超时时间
        :param poll_frequency: 等待轮询时间
        :return:
        """
        # 等待元素之前获取当前的时间
        start_time = time.time()
        try:
            ele = WebDriverWait(self.driver, timeout, poll_frequency).until(
                EC.element_to_be_clickable(locator)
            )
        except Exception as e:
            # 输出日志
            log.error("元素--{}--等待可点击超时".format(img_info))
            log.exception(e)
            # 对当前页面进行截图
            self.save_scree_image(img_info)
            raise e
        else:
            # 元素等待出现之后,获取实际
            end_time = time.time()
            log.info("元素--{}--可点击等待成功,等待时间{}秒".format(locator, end_time - start_time))
            return ele
예제 #2
0
 def test_login_pass(self, login_fixture):
     """正常登录的用例"""
     login_page,index_page = login_fixture
     # 进行登录的操作
     login_page.login(conf.get('test_data', 'user'), conf.get('test_data', 'pwd'))
     # 获取登录之后的用户信息
     res = index_page.get_my_user_info()
     # 断言用例执行是否通过
     try:
         assert '登录成功' == res
     except AssertionError as e:
         log.error("用例执行失败")
         log.exception(e)
         raise e
     else:
         log.info("用例执行通过")
예제 #3
0
 def click_element(self, locator, img_info):
     """
     点击元素
     :param locator: 元素定位表达式
     :param img_info: 错误截图信息
     :return:
     """
     try:
         self.driver.find_element(*locator).click()
     except Exception as e:
         # 输出日志
         log.error("点击元素--{}--失败".format(img_info))
         log.exception(e)
         # 对当前页面进行截图
         self.save_scree_image(img_info)
         raise e
     else:
         log.info("元素--{}--点击成功".format(locator))
예제 #4
0
 def get_element_text(self, locator, img_info):
     """
     获取元素的文本
     :param locator: 元素定位表达式
     :param img_info: 错误截图信息
     :return:
     """
     try:
         text = self.driver.find_element(*locator).text
     except Exception as e:
         # 输出日志
         log.error("元素--{}--获取文本失败".format(img_info))
         log.exception(e)
         # 对当前页面进行截图
         self.save_scree_image(img_info)
         raise e
     else:
         log.info("元素--{}--获取文本成功".format(locator))
         return text
예제 #5
0
 def get_element_attribute(self, locator, attr_name, img_info):
     """
     获取元素的文本"
     :param locator: 元素定位表达式
     :param attr_name: 属性名字
     :param img_info: 错误截图信息
     :return:
     """
     try:
         ele = self.driver.find_element(*locator)
         attr_value = ele.get_attribute(attr_name)
     except Exception as e:
         # 输出日志
         log.error("获取元素--{}--属性失败".format(img_info))
         log.exception(e)
         # 对当前页面进行截图
         self.save_scree_image(img_info)
         raise e
     else:
         log.info("获取元素--{}--属性成功".format(locator))
         return attr_value
예제 #6
0
 def input_text(self, locator, text_value, img_info):
     """
     文本内容输入
     :param locator: 元素定位表达式
     :param text_value: 输入的文本内容
     :param img_info: 错误截图信息
     :return:
     """
     try:
         self.driver.find_element(*locator).send_keys(text_value)
     except Exception as e:
         # 输出日志
         log.error("输入文本--{}--失败".format(img_info))
         log.exception(e)
         # 对当前页面进行截图
         start_time = time.strftime("%Y%m%d %X", time.localtime())
         filename = '{}_{}.png'.format(img_info, start_time)
         file_path = os.path.join(ERROR_IMG, filename)
         self.driver.save_screenshot(file_path)
         log.info("错误页面截图成功,图表保存的路径:{}".format(file_path))
         raise e
     else:
         log.info("文本内容输入--{}--成功".format(locator))