当前位置: 首页 > wzjs >正文

三河网站建设做网站图片大会导致慢

三河网站建设,做网站图片大会导致慢,中山网红,网站建设主要流程图深入解析Playwright for Python:浏览器功能与代码实例详解 摘要:本文深入讲解Playwright for Python中浏览器相关功能的技术要点,包含安装、配置、运行测试及管理浏览器二进制文件,同时提供完整的代码实例,助你高效掌…

深入解析Playwright for Python:浏览器功能与代码实例详解

摘要:本文深入讲解Playwright for Python中浏览器相关功能的技术要点,包含安装、配置、运行测试及管理浏览器二进制文件,同时提供完整的代码实例,助你高效掌握Playwright在Python环境中的应用。

引言

在现代Web应用测试领域,Playwright for Python凭借其跨浏览器支持、自动化等待机制等特性脱颖而出。本文将深入探讨Playwright for Python中浏览器相关功能的核心技术要点,结合实际代码示例,助力开发者高效利用这一工具进行Web应用测试。

Playwright浏览器安装与管理

概述

Playwright的每个版本都依赖特定版本的浏览器二进制文件。这保证了测试环境的稳定性和兼容性。通过Playwright CLI,我们可以轻松安装和管理这些浏览器。

安装浏览器

  • 默认安装:运行playwright install命令可以安装默认浏览器,包括Chromium、WebKit和Firefox。
  • 指定浏览器安装:使用playwright install webkit等命令可安装特定浏览器。
  • 查看支持浏览器playwright install --help命令展示所有支持的浏览器选项。

系统依赖安装

  • 自动安装playwright install-deps命令在CI等环境中自动安装系统依赖。
  • 指定浏览器依赖playwright install-deps chromium仅安装Chromium依赖。
  • 组合命令playwright install --with-deps chromium同时安装浏览器和系统依赖。

配置浏览器

Playwright支持Chromium、WebKit、Firefox等主流渲染引擎,以及Google Chrome、Microsoft Edge等品牌浏览器。通过--browser参数可以指定在不同浏览器上运行测试,如pytest test_login.py --browser webkit。此外,使用--device参数可模拟移动设备,例如pytest test_login.py --device="iPhone 13"

浏览器功能详解与实例

Chromium支持

Playwright使用开源Chromium构建版本,领先于品牌浏览器版本。提供常规Chromium构建用于有头操作,以及无头外壳用于无头模式。在CI环境下,可通过--only-shell参数仅安装无头外壳,减少资源占用。新的无头模式提供更真实可靠的测试环境,适合高精度测试场景。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(channel="msedge")  # 使用msedge通道page = browser.new_page()page.goto("https://playwright.dev")print(page.title())  # 打印页面标题browser.close()

Google Chrome和Microsoft Edge

Playwright支持操作本地安装的品牌浏览器,如Google Chrome和Microsoft Edge。需指定通道参数,例如channel="chrome"channel="msedge"。支持Stable和Beta通道,可通过Playwright CLI安装。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(channel="chrome")  # 使用本地Chrome浏览器page = browser.new_page()page.goto("https://example.com")print(page.title())browser.close()

Firefox与WebKit

Playwright的Firefox版本基于最新Stable构建,与品牌版本不兼容。WebKit则从最新主线分支源代码派生,不支持Safari品牌版本。不同操作系统上功能可用性可能有所不同。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.firefox.launch()  # 启动Firefox浏览器page = browser.new_page()page.goto("https://example.com")print(page.title())browser.close()
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.webkit.launch()  # 启动WebKit浏览器page = browser.new_page()page.goto("https://example.com")print(page.title())browser.close()

在防火墙或代理环境安装

Playwright默认从Microsoft CDN下载浏览器,可通过配置代理服务器解决内部网络限制。使用NODE_EXTRA_CA_CERTS环境变量设置自定义根证书,解决证书问题。通过PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT环境变量增加连接超时时间。

浏览器二进制文件管理

Playwright将浏览器下载到操作系统特定的缓存文件夹。可通过环境变量PLAYWRIGHT_BROWSERS_PATH指定下载位置。Playwright会自动移除陈旧浏览器版本,节省磁盘空间。也可通过playwright uninstall命令手动卸载浏览器。

import os
from playwright.sync_api import sync_playwright# 设置浏览器下载路径
os.environ["PLAYWRIGHT_BROWSERS_PATH"] = "$HOME/pw-browsers"with sync_playwright() as p:browser = p.chromium.launch()page = browser.new_page()page.goto("https://example.com")print(page.title())browser.close()

Chrome扩展支持

Playwright允许在Chrome/Chromium中使用持久上下文加载扩展。需指定扩展路径,使用--disable-extensions-except--load-extension参数。支持无头和有头模式。

from playwright.sync_api import sync_playwright, Playwrightpath_to_extension = "./my-extension"
user_data_dir = "/tmp/test-user-data-dir"def run(playwright: Playwright):context = playwright.chromium.launch_persistent_context(user_data_dir,channel="chromium",args=[f"--disable-extensions-except={path_to_extension}",f"--load-extension={path_to_extension}",],)if len(context.background_pages) == 0:background_page = context.wait_for_event('backgroundpage')else:background_page = context.background_pages[0]context.close()with sync_playwright() as playwright:run(playwright)

测试夹具与用例

通过测试夹具加载扩展,动态获取扩展ID,用于测试弹出页面等。以下为测试夹具和用例示例:

# conftest.py
from typing import Generator
from pathlib import Path
from playwright.sync_api import Playwright, BrowserContext
import pytest@pytest.fixture()
def context(playwright: Playwright) -> Generator[BrowserContext, None, None]:path_to_extension = Path(__file__).parent.joinpath("my-extension")context = playwright.chromium.launch_persistent_context("",channel="chromium",args=[f"--disable-extensions-except={path_to_extension}",f"--load-extension={path_to_extension}",],)yield contextcontext.close()@pytest.fixture()
def extension_id(context) -> Generator[str, None, None]:background = context.service_workers[0]if not background:background = context.wait_for_event("serviceworker")extension_id = background.url.split("/")[2]yield extension_id
# test_foo.py
from playwright.sync_api import expect, Pagedef test_example_test(page: Page) -> None:page.goto("https://example.com")expect(page.locator("body")).to_contain_text("Changed by my-extension")def test_popup_page(page: Page, extension_id: str) -> None:page.goto(f"chrome-extension://{extension_id}/popup.html")expect(page.locator("body")).to_have_text("my-extension popup")

总结

Playwright for Python提供了强大的浏览器功能支持,涵盖多浏览器兼容性、扩展支持、灵活的安装与管理选项。通过本文的深入解析和代码示例,开发者可以更高效地利用Playwright进行Web应用测试,确保应用在不同浏览器环境下的稳定性和可靠性。

进一步学习资源

  • Playwright官方文档
  • Playwright Python API参考
  • Playwright培训与视频教程
  • Playwright社区支持
http://www.dtcms.com/wzjs/573509.html

相关文章:

  • 企业网站建设重庆学生可做的网站主题
  • 如何创建一个免费网站wordpress 手机主题
  • wordpress 怎么打开关键词排名优化易下拉效率
  • 简约网站网站群建设系统
  • 吉隆网站建设wordpress怎样添加左侧菜单的功能
  • 烟台建设协会网站网站模块是什么
  • 大连专业制作网站苏州城乡建设局的网站
  • 山西网站推广公司园林景观设计公司做抖音推广
  • 公司网站静态模板服务器wordpress
  • 网络购物网站大全重庆有哪些旅游景点和好玩的地方
  • 上海网站建设 润莱芜在线广告信息
  • 风景旅游网站建设的设计思路广州中医药资源门户网站
  • 河海大学土木专业类建设网站数据库与网站建设
  • 买网站的域名南阳网站开发公司
  • 传奇服务器网站如何建设工业设计公司宣传语
  • 郑州有哪些做网站的公司电脑软件商店十大排名
  • 莆田中小企业网站制作怎样做自己的销售网站6
  • 纪检监察网站建设的意义湖南做网站问磐石网络专业
  • 网站平台动态视觉设计网站
  • wordpress 快站做网站推广邢台
  • 网站规划建设前期规划方案罗湖住房和建设局网站官网
  • 做宣传网站需要多少钱南陵网站建设
  • wordpress调用html代码seo营销策略
  • 该网站未在腾讯云备案wordpress 电影模版
  • 免费网站下载直播软件深圳展厅装修公司企业展厅设计公司
  • 晋城建设局网站做网站怎么插音乐
  • 杭州富阳网站建设wordpress技术服务
  • 个人网站是否需要备案市区网站建设情况
  • 建设vip网站相关视频专业网站快速
  • 城市建设网站电子商务专业就业方向 就业岗位有哪些