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

wordpress 柒比贰2.seo关键词推广多少钱

wordpress 柒比贰2.,seo关键词推广多少钱,电话销售企业网站怎么做,建设网站怎样做深入解析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/139718.html

相关文章:

  • 做网站需要数据储存么网站seo系统
  • 网站域名多少钱有广告位怎么找广告商
  • 哈尔滨学校网站建设免费seo在线优化
  • 黑科技软件网站推广运营怎么做
  • 公司营业执照可以做几个网站网站关键词优化工具
  • 网站资讯建设我想找一个营销团队
  • 商城网站平台怎么做seo刷词工具在线
  • 5网站建站web成品网站源码免费
  • 网站建设是什么意思网络营销的六大功能
  • 网站搭建上门多少钱百度关键词搜索排名查询
  • 手机网站 微信分享网页模板下载
  • 电商网站开发方案独立站怎么建站
  • 怎么自己做免费网站班级优化大师官网登录
  • wordpress 做大型网站seo怎么做推广
  • 轻创灵感网站免费二级域名注册申请
  • 免费域名注册网站有哪些友情链接交易网
  • 做ui的网站有哪些内容关键词分析软件
  • 做橡胶应该看什么网站谈谈你对seo概念的理解
  • 乌鲁木齐网络营销型网站怎么才能在百度上打广告
  • 网站建设与管理课后作业答案网页制作官方网站
  • 网站建设全过程及如何赚钱优化网站链接的方法
  • 深圳网站建设公司佰达河南制作网站公司
  • 徐州网站建设找哪家软文范例大全800字
  • 做游戏破解版的网站管理微信软件
  • 有用vue做企业网站的百度官网电话
  • 凡科官网免费制作seo建站是什么
  • 如何用一个框架做网站太原网站建设开发
  • 做网站建设销售员准备什么广州网络公司
  • 图书馆网站建设微信营销成功案例8个
  • 商城型网站建设长春网站制作设计