安装
1、直接使用playwright
2、使用官方提供的pytest插件版本(可选)
这两种的区别:
· pytest版本支持所有pytest功能,并且提供相关的断言测试方法
· pytest版本和pytest有比较强的关联性,需要对pytest框架有一定的了解
· 直接安装的版本更适合纯新手学习、应用、实战
3、安装Chromium、Firefox、WebKit等浏览器的驱动文件(内置浏览器)
这一步下载会比较慢如果你没有科学上网的话。
这些内容最终会下载到C:\Users\xiaozai\AppData\Local\ms-playwright文件夹下,也可以指定文件夹操作,详细可以去查看playwright的命令行参数,这里建议默认。
快速入门&脚本录制
以下脚本为简单启动一个浏览器并进入对应网址。除了注释,我后面还会有逐行代码解析。
代码逐步解析
首先,我使用的是同步模式,入门学习不建议直接学异步模式,不要有这么多好奇心,先入门再说。
from playwright.sync_api import sync_playwright:从playwright.sync_api模块中导入sync_playwright函数。这个函数用于同步启动Playwright。
def pw_test()::定义了一个名为pw_test的函数。
playwright = sync_playwright().start():使用同步方式启动Playwright库,并将返回的playwright对象赋值给变量playwright。这个playwright对象可以用来启动浏览器和创建页面等操作。
browser = playwright.chromium.launch(headless=False):通过playwright对象的chromium.launch()方法启动一个Chromium内核的浏览器实例。参数headless=False表示以非无头模式运行,这意味着浏览器界面会显示出来。
context = browser.new_context():在浏览器实例上创建一个新的上下文(Context)对象。上下文相当于一个浏览器窗口,用于隔离各个页面之间的环境。
page = context.new_page():在上下文中创建一个新的页面(Page)对象。每个页面可以看作是一个浏览器标签页。
page.goto("https://pingcode.com/signin"):使用page对象的goto()方法导航到指定的网址。
page.pause():暂停代码的执行,显示Playwright窗口,以便进行相关操作,如元素定位或录制操作。
page.wait_for_timeout(3000):设置一个最大的等待超时时间,以毫秒为单位。这里表示等待3秒,你可以理解为是time.sleep(3)。
对于page.pause(),代码运行到此处,你会发现浏览器旁边会弹出如下界面,这时候你就可以进行录制操作,点击Record按钮,你操作页面的时候这里就会自动帮你生成代码。
你可以通过这种方式快速了解playwright代码的编写方式,如定位、输入、点击等操作。
点击小窗口的Record按钮,可以进入录屏模式,进入录屏模式后你看看到浏览器的元素定位等功能,如下图所示。
此时,我手动输入了一些内容,这时候录制模式已经自动帮我转化为了代码。
我们根据录制的代码就可以开始模仿着写了。
这时候启动代码就会发现可以登录成功。