前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python Playwright API使用实例详解

Python Playwright API使用实例详解

作者头像
苦叶子
发布于 2023-06-09 08:33:52
发布于 2023-06-09 08:33:52
1.2K00
代码可运行
举报
文章被收录于专栏:开源优测开源优测
运行总次数:0
代码可运行

下方查看历史精选文章

重磅发布 - 自动化框架基础指南pdfv1.1 大数据测试过程、策略及挑战

测试框架原理,构建成功的基石

在自动化测试工作之前,你应该知道的10条建议

在自动化测试中,重要的不是工具

什么是 Playwright

Playwright 是一个 Node.js 库,它提供了一个高级的 API 来自动化 Chromium、Firefox 和 WebKit 浏览器中的操作。Python Playwright API 是 Playwright 的 Python 版本,它提供了一套与 Node.js 版本相同的 API,可以在 Python 中使用。

Python Playwright API 的目标是提供一个高级的 API,使得开发者可以简单、快速地编写 Web 应用程序的自动化测试、数据爬取、表单自动填充等任务。

安装 Playwright

在使用 Python Playwright API 之前,需要先安装 Playwright。安装方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!pip install playwright

安装完成后,需要下载安装 Chromium、Firefox 和 WebKit 三种浏览器,可以使用以下命令进行下载:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from playwright import async_playwright
async def main():
    async with async_playwright() as p:
        for browser_type in [p.chromium, p.firefox, p.webkit]:
            browser = await browser_type.launch()
            page = await browser.newPage()
            await page.goto('https://example.com')
            await browser.close()
asyncio.run(main())

这个命令会自动下载并安装 Chromium、Firefox 和 WebKit 三种浏览器。

3. 使用 Playwright

使用 Python Playwright API,可以通过以下步骤在浏览器中自动执行操作:

  • 启动浏览器;
  • 打开一个页面;
  • 执行一些操作,例如点击链接、填写表单等;
  • 获取页面内容;
  • 关闭浏览器。

下面是一个示例代码,它展示了如何使用 Playwright 在浏览器中打开网页、填写表单并提交表单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from playwright.sync_api import Playwright, Browser, Page
def run(playwright: Playwright) -> None:
    with playwright.chromium.launch() as browser:
        with browser.new_context() as context:
            with context.new_page() as page:
                page.goto('https://github.com/login')
                page.fill('#login_field', 'your-username')
                page.fill('#password', 'your-password')
                page.click('button[type="submit"]')
                # Wait for navigation to finish
                page.wait_for_selector('"#your-profile-link"')
                print(page.title())
if __name__ == '__main__':
    from playwright.sync_api import Playwright, sync_playwright
    with sync_playwright() as playwright:
        run(playwright)

这个示例代码使用 Chromium 浏览器打开 GitHub 登录页面,填写用户名和密码并点击提交按钮。然后等待页面跳转完成,并打印出当前页面的标题。

4. Playwright API 详解

4.1 浏览器操作

使用 Playwright 打开浏览器的方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from playwright.sync_api import Playwright, Browser
with playwright.chromium.launch() as browser:
    # do something

这个代码会使用 Chromium 浏览器打开一个新的浏览器窗口。

4.2 页面操作

使用 Playwright 打开页面的方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from playwright.sync_api import Playwright, Browser, Page
with browser.new_context() as context:
    with context.new_page() as page:
        page.goto('https://example.com')

这个代码会在当前浏览器中打开一个新的页面,并跳转到 example.com 网站。

4.3 等待操作

在测试中,经常需要等待页面加载完成或者等待某个元素出现。使用 Playwright,可以通过以下代码实现等待:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from playwright.sync_api import Playwright, Browser, Page
with browser.new_context() as context:
    with context.new_page() as page:
        page.goto('https://example.com')
        page.wait_for_selector('#some-element')

这个代码会等待网页中 ID 为 some-element 的元素出现后,才会继续执行后续代码。

4.4 元素操作

使用 Playwright,可以对页面中的元素进行各种操作,例如点击、填写、截图等。以下代码展示了如何对页面中的元素进行操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制


from playwright.sync_api import Playwright, Browser, Page
with browser.new_context() as context:
    with context.new_page() as page:
        page.goto('https://example.com')
        page.fill('#username', 'your-username')
        page.fill('#password', 'your-password')
        page.click('#login-button')
        page.screenshot(path='screenshot.png')

这个代码会在 example.com 网站中填写用户名和密码,并点击登录按钮。登录成功后,会对页面进行截图。

4.5 异步操作

Playwright 支持异步操作,可以通过以下代码实现异步操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from playwright.async_api import Playwright, async_playwright
async def main() -> None:
    async with async_playwright() as playwright:
        browser = await playwright.chromium.launch()
        context = await browser.new_context()
        page = await context.new_page()
        await page.goto('https://example.com')
        await browser.close()
asyncio.run(main())

这个代码会异步地使用 Chromium 浏览器打开 example.com 网站,并在操作完成后关闭浏览器。

5. 总结

Python Playwright API 是一个高级的自动化测试和数据爬取工具,它提供了一套与 Node.js 版本相同的 API,可以在 Python 中使用。通过 Python Playwright API,可以快速、简单地编写 Web 应用程序的自动化测试、数据爬取、表单自动填充等任务。

在本篇文章中,我们介绍了如何安装 Python Playwright API、使用 Playwright 打开浏览器和页面、等待页面加载、操作页面元素等操作。同时,我们还介绍了如何使用异步操作来提高代码执行效率。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微软开源最强Python自动化神器Playwright!不用写一行代码!自动生成代码还竟然如此流畅!妈妈再也不用担心我不会写代码了!
使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本。 下面就是录制的命令codegen,仅仅一行。
川川菜鸟
2021/10/18
3.1K0
自动化测试工具-Playwright(快速上手)
一提到 UI 自动化测试工具,首要推荐的必属是 Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等,目前已经迭代更新到 4 版本。那么缺点也有,比如环境配置、加载效率低、运行速度慢等。
wangmcn
2022/07/26
3.2K0
自动化测试工具-Playwright(快速上手)
不写一行代码来实现自动化
由于技术的进步,各行各业的门槛越来越低。 以前别人说会selenium就是会自动化。好像很高大上的样子。现在会selenium估计是基本的。大家都忙着内卷,各种轮子越来越多,自动化的门槛也越来越低。
赵云龙龙
2021/03/16
8910
微软开源最强Python自动化神器Playwright!不用写一行代码!
相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑。
Python之道
2020/12/25
1.6K0
《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
各种自动化框架都会有脚本录制功能, playwright这么牛叉当然也不例外。很早之前的selenium、Jmeter工具,发展到每种浏览器都有对应的录制插件。今天我们就来看下微软自动化框架playwright是如何录制脚本的。很多小伙伴或者童鞋们会觉得奇怪,怎么现在才将录制生成脚本啊,要是早点讲解和分享,我还费什么劲,揪头发写代码啊。宏哥这里说一下:这么做的目的就是为了录制生成脚本打基础的。要不然开始直接上手就录制了,就算生成脚本你也不知道什么意思,更不用说脚本中有错误需要你调试修改脚本了。playwright 可以支持自动录制生成脚本,也就是说只需要在页面上点点点,就可以自动生成对应的脚本了。
北京-宏哥
2024/04/25
4760
《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
《最新出炉》系列初窥篇-Python+Playwright自动化测试-2-playwright的API及其他知识
上一篇宏哥已经将Python+Playwright的环境搭建好了,而且也简单的演示了一下三款浏览器的启动和关闭,是不是很简单啊。今天主要是把一篇的中的代码进行一次详细的注释,然后说一下playwright的API和其他相关知识点。那么首先将上一篇中的代码进行一下详细的解释。
北京-宏哥
2023/06/10
1.6K1
《最新出炉》系列初窥篇-Python+Playwright自动化测试-2-playwright的API及其他知识
playwright基础教程
Playwright是一个由Microsoft开发的自动化测试工具,可以用来测试Web应用程序。它支持多种编程语言和多个浏览器,包括Chrome,Firefox和WebKit。它通过提供一组API,使得开发人员可以在浏览器中模拟用户行为,例如单击,输入文本和导航到不同的页面,同时还能捕捉截图和视频。
梦无矶小仔
2023/08/03
8420
playwright基础教程
PlayWright(十) - cookie登录态
  在web自动化测试中,经常会有登录的情况,并且每次打开页面都需要登录,非常麻烦,我们使用playwright的cookie实现自动化登录
似小陈吖
2023/10/17
1.8K0
PlayWright(十) - cookie登录态
爬虫工具-Playwright
Playwright 是微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大。虽然诞生比较晚,但是现在发展得非常火热。
sugarbeet
2022/09/26
1.5K0
爬虫工具-Playwright
强大易用!新一代爬虫利器 Playwright 的介绍
Playwright 是微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大。虽然诞生比较晚,但是现在发展得非常火热。
崔庆才
2021/12/10
7.4K0
强大易用!新一代爬虫利器 Playwright 的介绍
多维度对比Selenium和Playwright
Selenium和Playwright都是流行的自动化测试工具,可以用于测试Web应用程序。两者都具有相似的功能和特点,但也有一些区别。本文将详细对比Selenium和Playwright,从多个方面对其进行比较。
苦叶子
2023/06/09
3.6K0
多维度对比Selenium和Playwright
《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇
上一篇中,主要是介绍了拖拽的各种方法的理论知识以及实践,今天宏哥讲解和分享一下划取字段操作。例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能。
北京-宏哥
2023/10/07
23.4K0
新一代爬虫利器 Playwright!
最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢?今天为你介绍一下这个传说中的小白神器。
杰哥的IT之旅
2022/09/02
2.2K0
新一代爬虫利器 Playwright!
《最新出炉》系列入门篇-Python+Playwright自动化测试-42-强大的可视化追踪利器Trace Viewer
在我们日常执行自动化测试工作的过程中,经常会遇到一些偶发性的bug,但是因为bug是偶发性的,我们不一定每次执行都能复现,所以我们在测试执行的时候,追踪用例执行就变得非常重要了。playwright提供了一个Playwright Trace Viewer工具来追踪测试执行,这是一个GUI工具,我们可以通过它探索记录的 Playwright 测试跟踪,可以在测试的每个操作中前后移动,并直观地查看每个操作期间发生的情况。
北京-宏哥
2024/04/25
3600
《最新出炉》系列入门篇-Python+Playwright自动化测试-42-强大的可视化追踪利器Trace Viewer
playwright使用:启动浏览器与多种运行方式
在本文中,我们将介绍如何使用Playwright这一现代化的浏览器自动化工具来启动浏览器,并深入了解其运行方式。Playwright是一个功能强大的工具,可以帮助开发人员自动化测试、网页截图、信息提取等任务。它支持多种浏览器,包括Chrome、Firefox和WebKit。
霍格沃兹测试开发Muller老师
2024/05/12
9330
《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作
有些页面的内容不是打开页面时直接加载的,需要我们滚动页面,直到页面的位置显示在屏幕上时,才会去请求服务器,加载相关的内容,这就是我们常说的懒加载。还有就是在日常工作和学习中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,所以有时候我们就需要操作滚动条向下滚动的操作。其实前边的文章也提到过滚动条的操作,今天主要是将各种宏哥知道的方法进行一下汇总和总结,方便大家查找和学习。
北京-宏哥
2024/06/11
4880
《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作
《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
在我们日常工作中或者生活中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,如下图页面,我们虽然在豆瓣首页,但是内容并不完整,如果我们想要直接点击电影模块中的选电影按钮,是需要往下滑动的。当页面超过屏幕的高度时候,需要滚动到元素出现的位置,让元素处于可视的窗口上才能去操作元素。
北京-宏哥
2024/05/26
2530
《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
在我们日常工作中或者生活中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,如下图页面,我们虽然在豆瓣首页,但是内容并不完整,如果我们想要直接点击电影模块中的选电影按钮,是需要往下滑动的。当页面超过屏幕的高度时候,需要滚动到元素出现的位置,让元素处于可视的窗口上才能去操作元素。
北京-宏哥
2024/05/08
4580
《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
[1291]Playwright教程
这种类型的python库有好多种,鼎鼎大名的selenium,还有playwright、Pyppeteer等。
周小董
2024/12/20
7630
[1291]Playwright教程
软件测试|web自动化测试神器playwright教程(二十三)
我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright 中也有类似的方法,使用page.evaluate()执行JavaScript脚本。
霍格沃兹测试开发Muller老师
2023/08/01
3890
推荐阅读
相关推荐
微软开源最强Python自动化神器Playwright!不用写一行代码!自动生成代码还竟然如此流畅!妈妈再也不用担心我不会写代码了!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验