旅游网站开发指导做以个一元购的网站多少钱

张小明 2026/1/19 20:35:47
旅游网站开发指导,做以个一元购的网站多少钱,十大房产中介软件,短视频营销现状为什么选择Playwright#xff1f;在开始之前#xff0c;你可能想知道为什么选择Playwright而不是其他测试框架。我最初接触Playwright是因为它出色的跨浏览器支持——它同时支持Chromium、Firefox和WebKit内核#xff0c;这意味着你可以用一套代码测试Chrome、Firefox和Safa…为什么选择Playwright在开始之前你可能想知道为什么选择Playwright而不是其他测试框架。我最初接触Playwright是因为它出色的跨浏览器支持——它同时支持Chromium、Firefox和WebKit内核这意味着你可以用一套代码测试Chrome、Firefox和Safari。更重要的是它的自动等待机制让测试脚本更加稳定不需要像以前那样到处添加sleep语句。我使用Playwright已经有一年多时间在实际项目中它确实大大减少了因页面加载时间不稳定导致的测试失败。下面我将带你从零开始搭建环境并编写第一个真正的测试脚本。环境搭建一步步来1. 安装Node.jsPlaywright基于Node.js所以首先需要安装Node.js环境。我建议使用Node.js 16或更高版本。# 检查Node.js是否安装 node --version # 如果未安装访问Node.js官网下载安装包 # https://nodejs.org/安装完成后我习惯创建一个专门的目录来管理测试项目mkdir playwright-tutorial cd playwright-tutorial2. 初始化项目并安装Playwright# 初始化npm项目一路按回车使用默认值即可 npm init -y # 安装Playwright npm install playwright # 或者如果你想要TypeScript支持 npm install playwright types/node typescript-eslint/eslint-plugin --save-dev安装过程可能需要几分钟因为Playwright会下载它需要的浏览器二进制文件。我建议喝杯咖啡等待一下——第一次安装时它会下载三个浏览器Chromium、Firefox和WebKit大约需要200-300MB磁盘空间。3. 验证安装创建一个简单的验证脚本check-installation.jsconst { chromium } require(playwright); (async () { const browser await chromium.launch({ headless: false }); const page await browser.newPage(); await page.goto(https://www.example.com); console.log(页面标题:, await page.title()); awaitnewPromise(resolve setTimeout(resolve, 3000)); // 等待3秒查看效果 await browser.close(); })();运行这个脚本node check-installation.js如果你看到一个浏览器窗口打开并显示example.com恭喜你环境搭建成功。配置编辑器可选但推荐我个人使用VS Code并且推荐安装这些扩展Playwright Test for VSCode官方扩展Code Spell Checker避免拼写错误在项目根目录创建.vscode/launch.json文件可以方便调试{ version: 0.2.0, configurations: [ { type: node, request: launch, name: 运行Playwright测试, program: ${workspaceFolder}/node_modules/.bin/jest, args: [--runInBand] } ] }编写第一个真正的测试脚本现在进入有趣的部分让我们编写一个实际的测试场景测试百度搜索功能。创建文件first-test.jsconst { chromium } require(playwright); describe(百度搜索测试, () { let browser; let page; // 每个测试用例之前运行 beforeEach(async () { browser await chromium.launch({ headless: false, // 设置为true可以在后台运行 slowMo: 500// 放慢操作速度方便观察 }); page await browser.newPage(); await page.goto(https://www.baidu.com); }); // 每个测试用例之后运行 afterEach(async () { await browser.close(); }); it(应该能够搜索关键词并显示结果, async () { // 定位搜索框并输入内容 const searchInput await page.$(#kw); await searchInput.type(Playwright自动化测试); // 点击搜索按钮 const searchButton await page.$(#su); await searchButton.click(); // 等待搜索结果加载 await page.waitForSelector(.result); // 获取第一个结果标题 const firstResult await page.$(.c-container h3 a); const title await firstResult.textContent(); console.log(第一个搜索结果:, title); // 简单的断言 expect(title).toContain(Playwright); }); it(应该能够处理无结果的情况, async () { // 输入一个不太可能存在的搜索词 const searchInput await page.$(#kw); await searchInput.type(asdfghjkl1234567890特殊测试词); const searchButton await page.$(#su); await searchButton.click(); // 等待无结果提示出现 await page.waitForSelector(.content_none); const noResultText await page.textContent(.content_none); expect(noResultText).toContain(没有找到); }); }); // 运行测试 (async () { const { runTests } require(./test-runner); await runTests(); })();让测试更健壮最佳实践1. 使用选择器的最佳方式我刚开始用Playwright时犯过过度依赖CSS选择器的错误。实际上Playwright提供了更好的定位方式// 不推荐 - 过于脆弱 await page.click(#main div form input.submit); // 推荐 - 使用文本内容 await page.click(text搜索); // 推荐 - 使用data-testid属性需要在开发时添加 await page.click([data-testidsearch-button]); // 推荐 - 使用角色定位 await page.click(button:has-text(Submit));2. 处理弹窗和导航实际测试中经常遇到弹窗和页面跳转// 处理弹窗 page.on(dialog, async dialog { console.log(弹窗消息: ${dialog.message()}); await dialog.accept(); // 或 dialog.dismiss() }); // 等待新窗口打开 const [newPage] awaitPromise.all([ page.waitForEvent(popup), page.click(a[target_blank]) ]); // 处理iframe const frame page.frame({ name: login-frame }); await frame.fill(#username, testuser);3. 添加截图和视频功能调试时截图非常有用it(失败时截图, async () { try { // 测试代码... } catch (error) { // 保存截图和HTML await page.screenshot({ path: error-screenshot.png, fullPage: true }); await page.content().then(html { require(fs).writeFileSync(error-page.html, html); }); throw error; } });常见问题解决在我使用Playwright的过程中遇到过这些问题浏览器启动失败通常是因为杀毒软件阻止尝试关闭杀毒软件或添加到白名单。元素找不到最常见的问题。使用page.waitForSelector()或page.waitForFunction()等待元素出现。跨域问题Playwright默认禁用Web安全但如果仍有问题可以尝试await page.goto(https://example.com, { waitUntil: networkidle });中文输入问题使用page.type()而不是page.fill()来输入中文。进阶整合测试框架虽然我们可以自己写测试运行逻辑但使用成熟的测试框架更方便。我推荐Jest或Playwright TestPlaywright自带的测试运行器。安装Playwright Testnpm install playwright/test然后创建tests/example.spec.jsconst { test, expect } require(playwright/test); test(基础测试, async ({ page }) { await page.goto(https://www.baidu.com); await page.type(#kw, Playwright); await page.click(#su); await page.waitForSelector(.result); const title await page.title(); expect(title).toContain(Playwright); });运行测试npx playwright test总结到现在为止你已经成功搭建了Playwright测试环境并编写了第一个自动化测试脚本。我建议从简单的页面开始练习逐步尝试更复杂的交互场景。记住好的自动化测试不仅仅是让脚本运行起来还要考虑可维护性、稳定性和可读性。给选择器起有意义的名称添加清晰的注释处理好等待和异常——这些习惯会让你的测试代码更加健壮。下一步你可以尝试测试一个登录流程处理文件上传下载模拟移动设备集成到CI/CD流程中每个步骤都会让你对Playwright有更深的理解。开始你的自动化测试之旅吧
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设网站目的是什么做羞羞的事的视频网站

在儿童视力发育进程中,远视储备是一个至关重要的概念,它就像孩子眼睛的“视力储蓄罐”,是眼睛应对日后用眼压力的天然缓冲。随着电子产品普及、孩子学业压力增大,很多家长发现孩子的远视储备正悄然减少,而这一信号的背…

张小明 2026/1/17 19:26:23 网站建设

郑州的网站公司哪家好张雪峰谈网络工程

第一章:Open-AutoGLM模型下载加速在部署大型语言模型时,Open-AutoGLM的下载效率直接影响开发与部署周期。由于模型体积通常较大,网络延迟和源服务器带宽限制可能导致下载缓慢。为此,采用多线程下载、镜像加速和本地缓存策略可显著…

张小明 2026/1/19 19:14:28 网站建设

手机网站建设的图片网站开发的主要技术

导语 【免费下载链接】gemma-3-270m-it-unsloth-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/gemma-3-270m-it-unsloth-bnb-4bit Google最新发布的Gemma 3系列轻量级模型通过Unsloth优化技术,使270M参数规模的模型在保持高性能的同时实现…

张小明 2026/1/17 19:26:27 网站建设

网站是怎么做优化如何在国外网站做免费推广

在当今数字化时代,网络安全已成为每个组织必须面对的重要挑战。你是否曾担心自己的服务器能否承受大规模网络访问压力?DDoS-Ripper正是为解决这一痛点而生的专业测试工具。 【免费下载链接】DDoS-Ripper DDos Ripper a Distributable Denied-of-Service …

张小明 2026/1/17 19:26:28 网站建设

网站备案信息核验单填写南昌启航科技

导语:为什么你需要关注AI率检测工具?凌晨三点,我盯着电脑屏幕上那篇被期刊编辑退回的论文,红笔批注"疑似AI辅助写作"的字样刺得眼睛生疼。这不是我第一次遇到这种情况——自从ChatGPT掀起AI写作浪潮后,学术圈…

张小明 2026/1/17 19:26:28 网站建设

现在网站优化怎么做陕西省建设网三类人员继续教育

Flutter 2025 测试工程体系:从单元测试到生产监控,构建高可靠交付流水线 引言:你的 App 真的“测”好了吗? 你是否还在用这些方式做测试?“我本地跑一遍没问题,就可以上线了” “UI 变了太多,自…

张小明 2026/1/17 19:26:29 网站建设