Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
AI应用助手
一站式AI工具平台,为工作和学习提供智能解决方案
iSlide
让PPT设计简单起来,PPT模板下载平台
码上飞(CodeFlying)
用一句话自动生成小程序、APP、H5网页应用
SpeedAI
一键去重、降AIGC率、数据可视化、论文写作
必火AI
数字人一站式创作平台
趣网商城
私密生活好物,隐私配送,无痕购物
衡天云
海外云服务器12元/月起,限量抢购,超高性价比
奇绘馆AI视频
新一代AI视频创作平台
周易国学网
基于周易、八字、紫微斗数等传统国学文化
扣子Coze
职场AI,就用扣子

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
网站收录 / 问题反馈

Playwright

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:https://playwright.dev/
GitHub:https://github.com/microsoft/playwright
描述信息:微软开源的浏览器自动化工具
访问官网
GitHub

Playwright可以在所有浏览器中实现快速、可靠和强大的自动化测试。

这是我介绍Playwright自动化测试工具的第三篇幅,为什么选择Playwright?根据官方文档介绍,这里将介绍Playwright的特点,以便于帮助你快速的了解Playwright。


特点

支持所有浏览器
快速可靠的执行
强大的自动化功能
与你的工作流集成

注:

单讲特点比较干巴巴,所以,大部分特点我都配了例子。
官方文档默认例子为 JavaScript,这里也使用JavaScript。JavaScript其他还挺简单的。
评论区不用问Playwright的使用细节哈~!去官方文档找答案。


支持所有浏览器

在Chromium, Firefox 和 WebKit上运行测试:Google Chrome和Microsoft Edge都是基于Chromium项目,Apple Safari基于WebKit,还有Mozilla 的Firefox。

const { chromium, webkit, firefox } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  // const browser = await webkit.launch();
  // const browser = await firefox.launch();

  const page = await browser.newPage();
  await page.goto('http://www.baidu.com/');
  await page.screenshot({ path: `example.png` });
  await browser.close();
})();
扩展:
WebKit是Apple开源的浏览器引擎,Apple Safari就是基于WebKit开发。Chromium是开源浏览器项目,早期使用的也是WebKit内核,后来在WebKit的基础上fork了一个分支叫Blink,然后自己维护。

测试移动端:通过设置驱动模式可以模拟移动浏览器的效果。

const { webkit, devices } = require('playwright');
const iPhone11 = devices['iPhone 11 Pro'];

(async () => {
  const browser = await webkit.launch();
  const context = await browser.newContext({
    ...iPhone11,
    locale: 'en-US',
    geolocation: { longitude: 12.492507, latitude: 41.889938 },
    permissions: ['geolocation']
  });
  const page = await context.newPage();
  await page.goto('https://m.baidu.com');
  await page.screenshot({ path: 'colosseum-iphone.png' });
  await browser.close();
})();

Headless 和 headful: Playwright支持所有平台和浏览器上使用Headless模式和Headful模式。Headful非常适合调试。Headless运行更快,也可以更方便的在CI/云平台上运行。

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({headless: false});
  // ...
})();

headless 默认开启,设置为false,即为 headful模式,可以看到自动化的过程。


快速可靠的执行

自动等待: Playwright 可以自动等待元素,这将会提高自动化的稳定性,简化测试的编写。

浏览器上下文并行:对具有浏览器上下文的多个并行、隔离的执行环境,重用单个浏览器实例。

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({headless: false, slowMo: 50 });
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('http://www.testpub.cn/login');
  await page.fill("#inputUsername", 'admin');
  await page.fill("#inputPassword", 'admin123456');
  await page.click('"Sign in"');
  await page.close();

  const page2 = await context.newPage();
  await page2.goto("http://www.testpub.cn/guest_manage/")
  await browser.close();
})();

我来解释一下,比如第一条用例执行了登录,第二条用例直接通过上下文创建一个新的页面去执行登录之后的功能,即保证了用例的相对独立性,又减少了用例的重复操作。

有弹性的选择元素:Palywright可以依赖面向用户的字符串,如文本内容和可访问性标签来选择元素。这些字符串比与DOM结构紧密耦合的选择器更有弹性。

<button type="submit">Sign in</button>

例如上面的元素一看就不太好定位,用户到的是一个按钮,名字叫Sign in,那么可以用这个定位方式。

await page.click('"Sign in"');


强大的自动化能力

支持多个域、页面和表单: Palywright是一个 进程外(out-of-process) 自动化驱动程序,它不受页内JavaScript执行范围的限制,可以自动处理多个页面的场景。

// Create two pages
const pageOne = await context.newPage();
const pageTwo = await context.newPage();

// Get pages of a brower context
const allPages = context.pages();

强大的网络控制: Palywright引入上下文范围的网络拦截存根和模拟网络请求。

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({headless: false, slowMo: 50 });
  const context = await browser.newContext({ acceptDownloads: true });
  const page = await context.newPage();
  await page.goto('https://pypi.org/project/selenium/#files');
  const [ download ] = await Promise.all([
    page.waitForEvent('download'), 
    page.click('#files > table > tbody > tr:nth-child(2) > th > a')
  ]);
  const path = await download.path();
  console.log("path", path);
  await browser.close();
})();

在 HTTP 认证,文件下载、网络请求响应方面都有很强的控制能力。

覆盖所有场景的功能:支持文件下载、上传,进程外表单,输入、点击,甚至是手机上流行的暗黑模式。

// Create context with dark mode
const context = await browser.newContext({
  colorScheme: 'dark' // or 'light'
});


与你的工作流程集成

一行命令安装:运行npm i playwright 自动下载浏览器依赖,让你的团队快速上手。

支持TypeScript:Playwright 附带内置的自动完成类型和其他收益。

调试工具:通过 VS Code 完成自动化的调试。

语言绑定:Playwright 支持多种编程语言,这个前面的文章有介绍。

在CI上部署测试:你要可以使用Docker镜像,Playwright默认也是headless模式,你可以在任何环境上执行。

仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/3246

更多»
热门资源
fly63工具箱
简单、易用、便捷的在线工具
官网
GitHub
5118站长工具
关键词、长尾词挖掘,AI驱动的SEO内容创作辅助平台
官网
飞书多维表格
飞书旗下的一款在线协作与业务管理工具
官网
remove.bg
消除图片背景:100% 自动 – 只需 5 秒
官网
retoucher
在线AI智能抠图去背景工具
官网
图片压缩工具
免费减小图片大小,支持JPG/PNG/Webp多种格式
官网
图片格式转换
在线图像转换器,支持JPG/PNG/WebP多种格式
官网
老照片修复神器
AI还原褪色和损坏的照片,在线一键修复老照片
官网
AI应用助手
一站式AI工具平台,为工作和学习提供智能解决方案
官网
证件照生成器
在线制作标准证件照、换底色、AI智能生成
官网
阿里云DataV
地图数据
官网
Apifox
API 文档、API 调试、API Mock、API 自动化测试一体化协作平台
官网
类似于Playwright的资源
userlike
国外一体化在线客服系统软件
官网
JSbin
在线网站代码调试工具,开发工具
官网
Curler
在线网站状态监测工具
官网
SVGator
免费的在线SVG动画制作工具
官网
ImagesTool
无需上传文件也可在线处理图片
官网
CodeZen
在线源代码转图片工具
官网
RenderCV
让你用 YAML 文件去写简历内容
官网
GitHub
ImageBlur
在线图片马赛克处理工具
官网
目录

手机扫一扫预览

》
分享组件加载中...
首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网 All Rights Reserved. 提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。