一个顶级的Python自动化库:Playwright,让浏览器听从你的指挥!

发布时间:2026/10/31 22:19:34
一个顶级的Python自动化库:Playwright,让浏览器听从你的指挥!

关于2024年软件测试的面试刷题, 有这款小程序可以永久刷题, 它能帮你快速找到工作, 可以说是刷题APP里的顶级水平!这篇文章发布在CSDN博客上, 标题是《软件测试面试题刷题小程序》, 阅读量已经达到了3千次, 得到了86次点赞和13次收藏。

你是不是还不知道有这么一款专门用于软件测试面试题刷题的小程序呢?

这里所涵盖的内容, 实际上就是把面试环节当中经常会被问到的软件测试的基础性题目给包进去了, 同时, 也包括关于web自动化测试、app自动化测试、接口测试、性能测试、自动化的测试以及安全测试这几个方面所涉及的内容, 并且在这些技术类的测试内容之外, 还有一些在面试时常常会被人问到的, 关于人力资源方面的题目。

最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑​编辑​编辑://////?spm=1001.2014.3001.5502://////?spm=1001.2014.3001.5502​编辑://////?

spm=1001.2014.3001.5502​编辑://////?spm=1001.2014.3001.5502://////?spm=1001.2014.3001.5502

在进行Web自动化测试时,我们经常需要与浏览器进行交互,模拟用户的各种操作。的库正是为此而生。它是一个由微软开发的开源库,支持多种浏览器,如、和。

什么是?

它是一个功能强大的自动化库, 该库允许你通过编写代码的方式来完成对浏览器的控制操作。请你思考这样一个情境: 假设你手中有一个遥控汽车玩具, 那么这个被操作的遥控汽车就相当于浏览器, 而你手中的发射器则扮演遥控器的角色。

正是借助这个如同遥控器般的工具, 你可以指挥浏览器执行诸如打开指定网页、自动填写表单内容、单击界面按钮等一系列动作, 同时, 该软件还具备屏幕截图和视频录制等额外的功能特性。。

的工作原理

这个办法是通过和浏览器的底层协议进行通信, 来发送命令并且再接收结果, 这感觉就好像是在浏览器里面安插了一个小助手, 它帮你去把按钮给按下, 也帮你把文字输入进去, 这和以前那些自动化测试工具有着明显的不一样, 因为它提供了一整套统一的API用来支持好多种不同的浏览器, 这就意味着你只需要写一遍代码, 然后这段代码就可以跑在好几个不同的浏览器上面, 这样一下子就大大提高了开发时候的效率。

为什么选择?

1. 所谓支持跨浏览器, 也就是说是支持那些很多的人都在用的主流的浏览器, 这也就意味着你弄的自动化的脚本能够在各种不同的浏览器里面去运行, 这个是不需要你去修改代码的。

2. 它提供了非常丰富的API, 这些API能够支持进行一些比较复杂的操作, 比如处理弹出窗口、上传文件等。

3. 该程序具有令人叫好的优越性能, 它依托于底层架构的浏览器引擎作为基础来运作, 因此具备极高的执行效率特点, 使得其能够以非常快速的速度来彻底地完成一系列复杂的自动化任务。

4. 社区非常活跃, 作为一个属于开源性质项目存在这样的特点, 让你能够比较容易地找到相关的帮助和资源。

安装

首先, 我们要进行安装操作, 在终端中执行下面的命令。

pip install playwright

playwright install

这一步会把那个东西给装上, 并且还会把它所需要的那个浏览器的二进制文件也一并安装好。

基本概念

咱们在用之前得先搞明白几个最基本的概念。

1. 就是浏览器的实例情况, 这个情况下可以拿来启动一个新的浏览器页面出来的那种操作。

2. 这是一个页面实例, 它代表了一个已经被打开的标签页, 针对这个标签页是能够执行各种操作行为的, 比如说可以进行模拟点击动作以及填入输入内容这些情况。

3. 所谓的元素句柄, 这个说法它代表的就是页面当中的某个具体元素, 有了这个玩意儿, 你就可以对这个对象去做那些比较细化的操作啦。

简单示例:打开网页

让我们从一个简单的例子入手, 执行打开百度的操作, 并开展对“”的搜索工作。

from playwright.sync_api import sync_playwright

with sync_playwright() as p:

browser = p.chromium.launch(headless=False) # 使用Chromium浏览器,headless=False表示浏览器有界面显示

page = browser.new_page()

page.goto('https://www.baidu.com') # 打开百度

page.fill('input[name="wd"]', 'Playwright') # 在搜索框中填入Playwright

page.click('input[id="su"]') # 点击搜索按钮

page.screenshot(path='search_result.png') # 截图搜索结果

browser.close()

这个脚本首先会启动那个浏览器窗口, 之后就去打开百度网站, 然后会自动在那个搜索框里面去输入空内容, 接着它就去点击搜索这个操作按钮, 最后就会把结果页面给截图下来并且保存好。

先把那个表单给它填好, 然后再点击提交按钮。

眼下, 大家把视角移向一个难度稍微高一点点的场景, 也就是说, 我们需要弄明白该在哪儿样儿的表格里面去把那些信息给填上, 并且接着把这个动作给完成掉。

from playwright.sync_api import sync_playwright

with sync_playwright() as p:

browser = p.chromium.launch()

page = browser.new_page()

page.goto('https://example.com/form')

# 定位到表单中的输入框,并填写数据

name_input = page.query_selector('input[name="name"]')

name_input.fill('John Doe')

email_input = page.query_selector('input[name="email"]')

# 定位到提交按钮,并点击

submit_button = page.query_selector('button[type="submit"]')

submit_button.click()

print(page.text()) # 打印提交后的页面内容

browser.close()

在这个实例里面, 大家是先借助于page方法把这个表单里的输入框还有那个提交的按钮给定位到了, 往后呢, 是使用fill这个方法去把那数据给填进去, 接着是使用click这个方法把这表单给提交了, 最后还把提交完之后那个页面的内容给打印出来了。

这是一点高级特性, 这个高级特性用来处理弹出窗口。

甚至能够对浏览器里面的那些蹦出来的对话框进行相关操作, 就比如我们可以执行这样一个步骤, 也就是先去激活一个新的标签栏区域, 并且在刚刚创建的这个新标签里面, 把另一个新的窗口界面给打开。

from playwright.sync_api import sync_playwright

with sync_playwright() as p:

browser = p.chromium.launch()

page = browser.new_page()

page.goto('https://example.com')

# 点击一个会打开新窗口的链接

new_window_link = page.query_selector('a[target="_blank"]')

new_window_link.click()

# 等待新窗口出现

new_page = browser.wait_for_page(predicate=lambda p: p.url ==

# 对新窗口进行操作

print(new_page.title())

browser.close()

在本例之中, 我们首先是去点击了一个链接, 这个链接的作用是会打开一个全新的窗口, 之后呢, 我们就等待那个新的窗口出现, 等新窗口显示出来了以后, 再对它进行一系列的操作。

通过上述的这些简单的示例, 还有那些进阶的示例, 我们是可以看到库里面那种非常强大的功能的。它, 是能够让我们非常轻松地去完成Web自动化测试的工作的, 并且还可以来处理好那一些非常复杂的浏览器交互的情况的。

希望说, 这篇文章确实是可以来帮助你快速地就上手了了, 从而让你的编程之旅变得更加丰富和更加多彩的这么一个情况。

赶紧行动起来, 因为在路上走着肯定要比一直在那儿干等着要好得多, 未来的你一定会感激现在这么努力拼搏的自己!如果你想要学习提升却找不到学习资料, 或者没有人给你答疑解惑的话, 就请你及时地加进这个群里: , 群里面有着各种各样测试开发方面的资料还有技术可以一起进行交流探讨。

最后是这样的话, 下面这份关于软件测试的视频教程, 也就是那些完整的资料, 现在已经整理好了并且完成了上传工作, 如果有需要的朋友, 各位可以自己过来领取一下, 这里可以给大家一个保证, 那就是绝对的费用是零, 百分之百是不花钱的。

​​

软件测试面试文档