Playwright基础学习——脚本执行

result = page.evaluate("([x, y]) => Promise.resolve(x * y)", [7, 8])

page.evaluate()是基础的方法,传入一个 EvaluationArgument 实现传参。

注意:为了兼容异步和同步,如果传回Promise,将会等待Promise执行完成有数据才会返回数值,所以可以在非async中正常用Promise脚本。

EvaluationArgument会自动解包,支持多种多样的脚本传参方式,可以参考官方文档:

Evaluating JavaScript | Playwright Python

#  一个基本数值
page.evaluate('num => num', 42)

#  一个数组
page.evaluate('array => array.length', [1, 2, 3])

#  传递一个对象
page.evaluate('object => object.foo', { 'foo': 'bar' })

#  传递一个句柄(ElementHandle)
#  这里用locator而不是evaluate出来的元素句柄也可以的。
button = page.evaluate('window.button')
page.evaluate('button => button.textContent', button)

#  elementHandle.evaluate来替代page.evaluate,首个参数自动传elementHandle
button.evaluate('(button, from) => button.textContent.substring(from)', 5)

#  多个句柄对象
button1 = page.evaluate('window.button1')
button2 = page.evaluate('.button2')
page.evaluate("""o => o.button1.textContent + o.button2.textContent""",
    { 'button1': button1, 'button2': button2 })

#  对象解构也可以。
#  参数中对象名和结构属性名必须一致
#  (括号别忘了)
page.evaluate("""
    ({ button1, button2 }) => button1.textContent + button2.textContent""",
    { 'button1': button1, 'button2': button2 })

#  数组也可以,解构支持任意名称,注意别忘了括号
page.evaluate("""
    ([b1, b2]) => b1.textContent + b2.textContent""",
    [button1, button2])


#  任何可序列化对象和句柄的非嵌套循环混用都可以。
page.evaluate("""
    x => x.button1.textContent + x.list[0].textContent + String(x.foo)""",
    { 'button1': button1, 'list': [button2], 'foo': None })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Playwright 是一种现代化的浏览器自动化工具,它可以用来录制和执行自动化测试脚本。以下是使用 Playwright 录制脚本的步骤: 1. 安装 Node.js 和 Playwright: ``` npm install -g playwright ``` 2. 启动录制工具: ``` npx playwright codegen ``` 3. 选择要录制的浏览器和操作系统,并打开浏览器: ``` const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: false }); const context = await browser.newContext(); const page = await context.newPage(); await page.goto('https://example.com'); // 开始录制 })(); ``` 4. 在浏览器中进行操作,例如点击按钮或输入文本。 5. 停止录制并生成脚本,复制生成的代码并粘贴到测试脚本中。 6. 运行测试脚本: ``` node my-test.js ``` 这样就可以使用 Playwright 录制和执行自动化测试脚本了。 ### 回答2: Playwright是一个开源的自动化测试工具,它可以用于录制和执行浏览器自动化脚本。通过Playwright录制脚本,我们可以实现对Web应用程序的自动化操作和测试。 首先,我们需要安装Playwright。可以使用npm命令来安装Playwright的Node.js库,也可以使用pip命令来安装Python库。安装完成后,我们可以使用命令行或代码编辑器来编写脚本。 在开始录制脚本之前,需要先创建一个文件,比如script.js或者script.py。然后,我们可以使用Playwright提供的API来录制脚本。首先,需要导入Playwright库,并创建一个浏览器实例: const { webkit } = require('playwright'); (async () => { const browser = await webkit.launch(); const context = await browser.newContext(); const page = await context.newPage(); 接下来,我们可以在浏览器页面上执行各种操作,比如导航到指定的URL、填写表单、点击按钮、获取元素等等。我们可以使用page对象提供的方法来完成这些操作,比如: await page.goto('https://example.com'); await page.fill('input[name="username"]', 'myusername'); await page.click('button[type="submit"]'); const title = await page.title(); 在录制脚本期间,我们还可以使用Playwright的开发者工具,来查看浏览器页面的DOM结构和CSS样式。这样可以更方便地定位元素和编写脚本。 完成录制脚本后,我们可以保存脚本执行它。执行脚本的方式取决于我们的需求,可以使用命令行工具传入脚本文件执行,也可以编写一个Node.js或Python程序来执行脚本。 总之,通过Playwright录制脚本,我们可以方便地实现对Web应用程序的自动化操作和测试。这样可以提高工作效率,减少人工操作的工作量,并确保应用程序的质量和稳定性。 ### 回答3: Playwright是一个强大的开源工具,用于录制、回放和调试Web应用程序的自动化脚本。使用Playwright录制脚本可以极大地提高开发人员的生产效率和测试质量。 首先,开发人员可以使用Playwright的录制功能来快速生成自动化测试脚本。通过在浏览器中手动操作网页,Playwright能够记录下每一步操作,如点击、输入、滚动等。录制下来的脚本可以直接在后续的回放中使用,省去了开发人员手动编写脚本的时间和精力。 其次,Playwright录制的脚本可以轻松地进行编辑和自定义。开发人员可以通过添加断言和条件语句来验证页面的正确性和功能的完整性。这样可以确保应用程序在各种场景下的稳定性和可靠性。 另外,Playwright还支持多种编程语言,包括JavaScript、TypeScript和Python等,这使得开发人员可以使用自己熟悉的语言编写和管理测试脚本。这种灵活性使得团队成员可以更好地合作,并且可以根据项目需要进行定制和扩展。 最后,Playwright还提供了丰富的调试工具,使得开发人员能够更好地跟踪和排查自动化测试脚本中的错误和问题。通过使用这些调试工具,开发人员可以检查每一步操作的执行结果、输入的准确性和页面的状态,从而更好地了解脚本执行流程和问题所在。 总之,Playwright录制脚本是一种高效且灵活的方式,可用于自动化测试和测试驱动开发。它能够大大提高开发人员的效率和测试质量,同时也提供了强大的调试功能,帮助开发人员更好地解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值