📖 前言
👋 简介
本章节介绍下脚本录制功能,对于有些元素定位或者操作不太熟悉的地方,可以通过录制功能生成对应的代码用于学习或者使用,提供方便
💡 正文
1 录制功能
方式一:playwright codegen
,会打开一个无痕浏览器,需要手动输入网址
方式二:playwright codegen baidu.com
,打开浏览器,自动访问百度页面
运行后会启动2个窗口,一个是需要操作的窗口,一个是inspector可以生成对应脚本的窗口
2 脚本切换
脚本提供切换其他编程语言以及一些其他的功能,如改位异步操作,生成测试的代码等
2.1 异步
选择Library Async
后,会生成异步的方式去进行访问百度页面
import asyncio
from playwright.async_api import Playwright, async_playwright, expect
async def run(playwright: Playwright) -> None:
browser = await playwright.chromium.launch(headless=False)
context = await browser.new_context()
page = await context.new_page()
await page.goto("https://www.baidu.com/")
await context.close()
await browser.close()
async def main() -> None:
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
2.2 自动化测试
选择pytest
会生成基于pytest测试框架的代码,实现访问百度,并输入playwright,按下回车进行搜索的功能
from playwright.sync_api import Page, expect
def test_example(page: Page) -> None:
page.goto("https://www.baidu.com/")
page.locator("#kw").click()
page.locator("#kw").fill("playwright")
page.locator("#kw").press("Enter")
2.3 其他语言
比如生成java代码:
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.*;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import java.util.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
.setHeadless(false));
BrowserContext context = browser.newContext();
Page page = context.newPage();
page.navigate("https://www.baidu.com/");
}
}
}
js代码:
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://www.baidu.com/');
// ---------------------
await context.close();
await browser.close();
})();
备注:我们使用playwright的时候,一般主要常用于自动化测试和爬虫,大部分时候还是会基于python语言来使用playwright的。
3 参数详解
通过使用python -m playwright codegen -h
查询录制功能的参数对应的功能
-o
:保存路径,也可以写成--output
,-o D:\01 programming\xxx.py
--target
:指定编程语言,--target python
-b
:指定浏览器,-b chromium
--save-storage
:保存登录状态,--save-storage=auth.json
--load-storage
:加载登录状态,--load-storage=auth.json
--viewport-size
:设置打开浏览器窗口大小,--viewport-size=1000,800
--device
:使用设置视口大小和用户代理等选项模拟移动设备,需要双引号并区分大小写,--device="iPhone 15"
--color-scheme
:模拟打开浏览器的配色,--color-scheme=dark
--geolocation
:模拟地理位置,--geolocation="30.890221,120.492348"
--timezone
:模拟时区,--timezone="Asia/Shanghai"
--lang
:模拟语言,--lang="zh-CN"