当前位置: 首页 > news >正文

wordpress 延时加载js优化关键词怎么做

wordpress 延时加载js,优化关键词怎么做,网站设计与管理的软件,二级不死域名购买这是初版的 pom web 测试框架#xff0c;目录如下同时部分代码也放在下面#xff0c;详细代码可前往 github 查看#xff0c;欢迎大家给出宝贵意见。 |--base | base_page.py#xff08;封装方法#xff09; | |--config | allure_config.py#xff08;测试报告配…这是初版的 pom web 测试框架目录如下同时部分代码也放在下面详细代码可前往 github 查看欢迎大家给出宝贵意见。 |--base | base_page.py封装方法 | |--config | allure_config.py测试报告配置 | |--data | code验证码 | user.yaml用户目录 | |--logs | log日志文件 | log.py日志模块 | |--page_object | login_page.py登陆页面元素及流程 | |--reports测试报告存放处 | allure-page | report | |--screenshot | err_screenhot错误截图 | screenshot.py截图模块 | |--test_case | conftestfixture配置 | test_login.py登录测试用例 | |--utils | util公共方法类似于验证码识别等 | web_driver.pydriver配置 | |--run.py测试框架运行模块 base封装方法 class BasePage:def __init__(self, driver):self.driver driverself.logger Logs.get_logger()self.scr Screenshot(driver)打开urldef open_url(self, url: str):self.driver.maximize_window()self.logger.info(最大化窗口)self.driver.get(url)self.logger.info(f打开网址{url})# self.driver.implicitly_wait(80)元素定位元组形态返回web_element对象def locator(self, loc: tuple) - WebElement:try:# 显示等待直到元素可见并可交互return self.display_wait(loc)except NoSuchElementException:self.logger.error(f元素{loc}未找到)self.scr.screenshot(loc)raiseexcept TimeoutException:self.logger.error(f元素{loc}未在规定时间内变为可见)self.scr.screenshot(loc)raise config测试报告配置 # 用户数据路径 user_data_path os.path.join(os.path.dirname(os.path.dirname(__file__)), data, user.yaml)# 测试用例路径 def case_path(path):return os.path.join(os.path.dirname(path), test_cases)# 测试报告路径 def report_path(path):return os.path.join(os.path.dirname(path), reports)# 执行 pytest 命令生成 Allure 报告配置 pytest_command [pytest,test_login.py, # 登陆测试test_home.py, # 首页测试test_search.py, # 搜索测试--alluredir../reports/report,--clean-alluredir] # 执行 Allure 命令生成并打开报告配置 allure_command [allure, generate, report, --clean] # 打开allure报告 allure_open [allure, open, allure-report]logs日志 class Logs:LOG_DIRECTORY os.path.join(os.path.dirname(__file__), log_file)LOG_FORMAT [%(asctime)s] %(levelname)s %(name)s(%(lineno)d): %(message)sLOG_DATE_FORMAT %Y-%m-%d %H:%M:%SLOG_LEVEL logging.INFOBACKUP_COUNT 0_logger Nonedef __init_subclass__(cls, **kwargs):super().__init_subclass__(**kwargs)cls.ensure_log_directory()classmethoddef ensure_log_directory(cls):if not os.path.exists(cls.LOG_DIRECTORY):os.makedirs(cls.LOG_DIRECTORY)classmethoddef get_logger(cls):if cls._logger is None:try:cls.ensure_log_directory()log_path os.path.join(cls.LOG_DIRECTORY, f{time.strftime(%Y%m%d)}.log)file_handler TimedRotatingFileHandler(log_path, whenmidnight, interval1,encodingutf8, backupCountcls.BACKUP_COUNT)formatter logging.Formatter(cls.LOG_FORMAT, datefmtcls.LOG_DATE_FORMAT)file_handler.setFormatter(formatter)cls._logger logging.getLogger(cls.__name__)cls._logger.setLevel(cls.LOG_LEVEL)cls._logger.addHandler(file_handler) except Exception as e:raise RuntimeError(f无法初始化类的记录器 {cls.__name__}: {e})return cls._logger page_object页面对象 class LoginPage(BasePage):# 网址_url http://baidu.com# 账号_account (id, account)# 密码_password (id, PASSWORD)# 登录_login_button (id, login_button)def correct_login(self, username, password):with allure.step(打开登陆页面):self.open_url(self._url)with allure.step(f输入账号:{username}):self.input(self._account, username)with allure.step(f输入密码:{password}):self.input(self._password, password)with allure.step(点击登陆):self.click(self._login_button) screenshot截图 class Screenshot:def __init__(self, driver):self._driver driverself._screenshot_path os.path.join(os.path.dirname(__file__), err_screenshot)self._ensure_screenshot_directory()self._logger Logs.get_logger()def _ensure_screenshot_directory(self):try:if not os.path.exists(self._screenshot_path):os.makedirs(self._screenshot_path)except Exception as e:self._logger.error(f创建屏幕截图目录时出错: {e})def screenshot(self, error_name):date_time datetime.now().strftime(%Y-%m-%d_%H.%M.%S)screenshot_name f{error_name}_{date_time}.pngscreenshot_path os.path.join(self._screenshot_path, screenshot_name)try:self._driver.get_screenshot_as_file(screenshot_path)with open(screenshot_path, rb) as image_file:image_data image_file.read()allure.attach(image_data, namescreenshot_name, attachment_typeallure.attachment_type.PNG)self._logger.info(f截图成功: {screenshot_path})except FileNotFoundError as e:self._logger.error(f保存截图时文件路径不存在: {e})except Exception as e:self._logger.error(f截取屏幕快照并保存时出错: {type(e).__name__}: {e}) test_case测试用例 conftest pytest.fixture(scopeclass) def driver():with allure.step(webdriver初始化):driver_instance init_driver()try:yield driver_instancefinally:with allure.step(退出浏览器):driver_instance.quit() test_login.py allure.epic(xxx系统) allure.feature(首页登陆页面) class TestLogin:pytest.fixture(autouseTrue)def setup(self, driver):self._lp LoginPage(driver)allure.title(正确账号登录)allure.description(验证正确账号可以登录首页)allure.severity(allure.severity_level.BLOCKER)pytest.mark.parametrize(login_account, yaml.safe_load(open(user_data_path))[login_data])def test_login(self, driver, login_account):try:self._lp.correct_login(login_account[CorrectAccount], login_account[CorrectPassword])except Exception as e:screenshot_taker Screenshot(driver)screenshot_taker.screenshot(f登陆出错)raise eunitls unil 未用到公共方法暂未配置 web_driver def init_driver():options Options()# 可选配置项options.page_load_strategy eager # 页面加载策略默认为normal可选eager和none。# options.add_argument(--headless) #无头模式options.add_argument(--disable-gpu) # 禁用gpuoptions.add_argument(--user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0) # 用户代理# options.add_argument(--incognito) # 隐身模式options.add_argument(--disable-infobars) # 禁用信息栏浏览器正在被自动化工具控制options.add_argument(--start-maximized) # 窗口最大化options.add_argument(--ignore-certificate-errors) # 忽略证书错误options.add_argument(--no-sandbox) # 禁用沙箱模式# 设置浏览器首选项prefs {download.prompt_for_download: False, # 下载文件时是否提示保存对话框safebrowsing.enabled: True, # 是否启用安全浏览功能credentials_enable_service: False, # 是否启用保存密码提示profile.password_manager_enabled: False # 是否启用密码管理功能}options.add_experimental_option(prefs, prefs)driver webdriver.Chrome(optionsoptions)return driver run运行文件 # 初始化日志配置 logger Logs.get_logger()# 路径配置 BASE_DIR os.path.dirname(__file__) TEST_CASE_DIR os.path.join(BASE_DIR, test_cases) REPORT_DIR os.path.join(BASE_DIR, reports)def main():try:# 执行 pytest 命令生成 Allure 报告logger.info(正在运行 pytest 以生成 Allure 报告...)subprocess.run(pytest_command, cwdTEST_CASE_DIR, shellTrue)# 执行 Allure 命令生成报告logger.info(正在生成 Allure 报告...)subprocess.run(allure_command, cwdREPORT_DIR, shellTrue)# 打开 Allure 报告logger.info(打开Allure报告...)subprocess.run(allure_open, cwdREPORT_DIR, shellTrue)except subprocess.CalledProcessError as e:logger.error(f发生错误: {e})exit(1)if __name__ __main__:main()
http://www.hkea.cn/news/14544526/

相关文章:

  • 网站开发交接协议书素材免费网站
  • pc网页游戏网站陕西西安网站建设
  • 网站建设服务中企动力太原网站免费制作
  • 手机网站域名注册城市建设游戏模拟网站
  • 网站注册界面网站目录管理模版
  • 公司网站制作站制作嵌入式软件开发介绍
  • 淘宝网站框架大连网站快速排名
  • 南京网站seo专家木门行业做网站有什么好处
  • 如何做网站背景邢台房产信息网58同城
  • 四川华海建设集团有限公司网站建一个网站大约需要花费多少钱
  • js怎么做网站ui设计生成器
  • 梵美传媒网站是谁做的建设一个网站主要受哪些因素的影响因素
  • 网站消息推送网址打不开怎么解决
  • 网站如何转做app做爰全过程网站免费的视频教程
  • 鄂州市网站网站兼容性怎么调
  • 个人可以做宣传片视频网站08影院wordpress主题
  • 企业网站会涉及到的版权问题在线海报设计
  • 建设学校网站多钱云服务器搭建个人网站
  • 轮播网站腾讯云wordpress升级慢
  • 网站前端浏览器兼容如何做style图片路径wordpress
  • 摄影图片素材网站网站建设答辩ppt
  • 织梦网站统计交换链接网站
  • 网站的建设方案怎么写网页设计代码居中
  • 网站服务器地址怎么查wordpress博客广告收益
  • 个人网站的前途郑州小程序开发价格
  • 做网站好公司哪家好无做弊的棋牌游戏网站
  • 彩票网站开发dadi163渭南建筑工程网
  • wordpress 远程代码优化百度百科
  • 电商网站开发系统架构河北网络推广平台
  • 织梦 网站版权信息制作网页设计软件列表代码