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

做网站建设销售辛苦吗百度推广投诉电话客服24小时

做网站建设销售辛苦吗,百度推广投诉电话客服24小时,网站开发费用怎么做账,谭木记网页制作教程文章目录 1. 安装 Playwright1.1 安装 Playwright 库1.2 安装浏览器 2. 基础用法2.1 启动浏览器2.2 查找元素2.3 操作元素 3. 高级功能3.1 等待机制3.2 处理弹窗3.3 执行 JavaScript3.4 切换 iframe3.5 处理 Cookies3.6 截图和 PDF3.7 模拟设备3.8 网络拦截 4. 常见应用场景4.1…

文章目录

    • 1. 安装 Playwright
      • 1.1 安装 Playwright 库
      • 1.2 安装浏览器
    • 2. 基础用法
      • 2.1 启动浏览器
      • 2.2 查找元素
      • 2.3 操作元素
    • 3. 高级功能
      • 3.1 等待机制
      • 3.2 处理弹窗
      • 3.3 执行 JavaScript
      • 3.4 切换 iframe
      • 3.5 处理 Cookies
      • 3.6 截图和 PDF
      • 3.7 模拟设备
      • 3.8 网络拦截
    • 4. 常见应用场景
      • 4.1 自动化登录
      • 4.2 抓取动态加载数据
      • 4.3 模拟下拉菜单选择
    • 5. 异步支持
    • 6. 测试框架集成
    • 7. 调试技巧
      • 7.1 慢动作模式
      • 7.2 调试日志
    • 8. 总结

Playwright 是一个现代化的浏览器自动化工具,支持 Chromium、Firefox 和 WebKit 浏览器。它提供了强大的 API,适用于网页自动化测试、数据抓取和网页交互。Playwright 支持多语言(如 Python、JavaScript、Java、C# 等),并且具有跨浏览器、跨平台的特性。

官网:https://playwright.dev/python/docs/intro
github:https://github.com/microsoft/playwright

本文将详细介绍 Playwright 的安装、基础用法和高级功能。

1. 安装 Playwright

1.1 安装 Playwright 库

使用 pip 安装 Playwright:pip install playwright

1.2 安装浏览器

安装 Playwright 后,需要下载支持的浏览器:playwright install

2. 基础用法

2.1 启动浏览器

Playwright 支持多种浏览器,包括 Chromium、Firefox 和 WebKit。以下是一个简单的示例,启动浏览器并打开网页:

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:# 启动浏览器browser = p.chromium.launch(headless=False)  # headless=False 表示显示浏览器窗口# 打开新页面page = browser.new_page()# 访问网页page.goto('https://www.example.com')# 截图page.screenshot(path='example.png')# 关闭浏览器browser.close()

2.2 查找元素

Playwright 提供了多种查找元素的方法:

  • page.query_selector():查找单个元素。
  • page.query_selector_all():查找所有匹配的元素。
  • page.locator():通过选择器定位元素。

示例:

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto('https://www.example.com')# 通过选择器查找元素element = page.query_selector('h1')text = element.inner_text()print(text)  # 输出元素的文本内容browser.close()

2.3 操作元素

输入文本

# 输入文本:page.fill(selector, text)
page.fill('#input-id', 'Hello, Playwright')

点击元素

# 点击元素:page.click(selector)
page.click('#submit-button')

获取元素属性

value = page.get_attribute('#element-id', 'value')

获取元素文本

#  获取元素文本:page.text_content(selector)
text = page.inner_text('#element-id')

3. 高级功能

3.1 等待机制

Playwright 提供了多种等待机制,用于处理页面加载或元素加载的延迟。

等待元素出现

# 等待元素出现:page.wait_for_selector(selector)
page.wait_for_selector('#element-id', timeout=5000)  # 等待最多 5 秒

等待导航完成

page.goto('https://www.example.com', wait_until='networkidle')  # 等待网络空闲

自定义等待

page.wait_for_timeout(2000)  # 等待 2 秒

3.2 处理弹窗

Playwright 可以处理浏览器的弹窗(如警告框、确认框、提示框)。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()# 监听弹窗事件page.on('dialog', lambda dialog: dialog.accept())  # 点击确定page.goto('https://example.com')page.click('button')  # 点击按钮触发弹窗browser.close()

3.3 执行 JavaScript

可以通过 page.evaluate() 方法执行 JavaScript 代码。

# 滚动页面到底部
page.evaluate('window.scrollTo(0, document.body.scrollHeight);')# 修改元素属性
page.evaluate('document.getElementById("element-id").style.backgroundColor = "yellow";')

3.4 切换 iframe

如果需要操作 iframe 中的元素,需要先切换到 iframe。

frame = page.frame(name='iframe-name')
element = frame.query_selector('#element-in-iframe')

3.5 处理 Cookies

Playwright 可以操作浏览器的 Cookies。

# 设置 Cookie
page.context.add_cookies([{'name': 'key', 'value': 'value', 'url': 'https://www.example.com'}])# 获取 Cookie
cookies = page.context.cookies()
print(cookies)# 删除 Cookie
page.context.clear_cookies()

3.6 截图和 PDF

截图

page.screenshot(path='screenshot.png', full_page=True)  # 截取整个页面

生成 PDF

page.pdf(path='page.pdf', format='A4')

示例:

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch()page = browser.new_page()page.goto('https://example.com')# 截取页面截图page.screenshot(path='example.png')# 生成 PDF 文件page.pdf(path='example.pdf')browser.close()

3.7 模拟设备

Playwright 可以模拟不同的设备(如 iPhone、iPad 等)来测试响应式设计。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)iPhone = p.devices['iPhone 11']context = browser.new_context(**iPhone)page = context.new_page()page.goto('https://example.com')browser.close()

3.8 网络拦截

Playwright 允许你拦截和修改网络请求。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch()page = browser.new_page()# 拦截所有请求def handle_request(route, request):print(request.url)route.continue_()  # 继续请求page.route('**/*', handle_request)page.goto('https://example.com')browser.close()

4. 常见应用场景

4.1 自动化登录

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto('https://www.example.com/login')# 输入用户名和密码page.fill('#username', 'your-username')page.fill('#password', 'your-password')# 点击登录按钮page.click('#login-button')browser.close()

4.2 抓取动态加载数据

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto('https://www.example.com/dynamic-content')# 等待动态内容加载page.wait_for_selector('.dynamic-content')# 获取内容content = page.inner_text('.dynamic-content')print(content)browser.close()

4.3 模拟下拉菜单选择

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto('https://www.example.com/form')# 选择下拉菜单选项page.select_option('#dropdown', 'value1')browser.close()

5. 异步支持

Playwright 支持异步操作,适合需要高效处理多个任务的场景。

import asyncio
from playwright.async_api import async_playwrightasync def main():async with async_playwright() as p:browser = await p.chromium.launch(headless=False)page = await browser.new_page()await page.goto('https://www.example.com')await page.screenshot(path='example.png')await browser.close()asyncio.run(main())

6. 测试框架集成

Playwright 可以与流行的测试框架(如 pytest)集成,用于编写端到端测试。

首先,安装 pytest 和 Playwright 的 pytest 插件:pip install pytest playwright pytest-playwright

然后,编写测试用例:

from playwright.sync_api import Pagedef test_example(page: Page):page.goto('https://example.com')assert page.title() == 'Example Domain'

7. 调试技巧

7.1 慢动作模式

在操作过程中加入延迟,方便观察页面变化。

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto('https://example.com')# 启用慢动作模式page.click('a[href="/about"]', delay=1000)  # 点击时延迟 1 秒browser.close()

7.2 调试日志

启用调试日志,查看 Playwright 的内部操作。

DEBUG=pw:api python script.py

8. 总结

Playwright 是一个功能强大的浏览器自动化工具,适用于网页自动化测试、数据抓取和网页交互。通过掌握其基础用法和高级功能,你可以轻松实现各种浏览器自动化任务。Playwright 支持多浏览器、多语言,并且具有高效的异步操作能力,是现代浏览器自动化的首选工具之一。

http://www.dtcms.com/wzjs/494317.html

相关文章:

  • 自己做返利网站靠谱吗软文营销广告案例
  • 什么是网站排名优化杭州百度代理公司
  • 建设工程招标网站上海网站建设关键词排名
  • 太原微网站制作南昌百度网站快速排名
  • 全套网站模板友情链接检索数据分析
  • 广州专业的网站建设网址提交入口
  • 河北建设厅网站首页seo优化运营
  • 手机网站开发怎么样搜索引擎优化seo论文
  • 网站备案必须做网络推广合作协议范本
  • 网站建设考评表seo建站教程
  • 运城有做网站设计外包公司为什么没人去
  • 成都网站建设四川冠辰宁波seo推广
  • 做智能网站系统下载百度广告平台
  • 免费mac做ppt模板下载网站1688关键词排名查询工具
  • 网站价值评估怎么做电商营销推广方案
  • 怎么用阿帕奇做网站微信软文怎么写
  • 空气炸锅做糕点的网站百度下载免费
  • 快手淘客网站是怎么做的青岛seo博客
  • creative建网站平台爱站网能不能挖掘关键词
  • ajaxjsp网站开发从入门到精通seo如何优化关键词
  • dw做简单小说网站排名优化方法
  • 做网站除甲醛需不需要营业执照优化公司组织架构
  • 给人做logo的网站北京百度总部电话
  • 网站调用微信js视频最新搜索关键词
  • 客服网站在线怎么优化整站
  • 柳传志 潘石屹做水果网站中国十大公关公司排名
  • web网站开发流程图商丘网站建设公司
  • 济南网站建设销售招聘seo在线优化排名
  • 织梦网站漏洞修复上海关键词优化报价
  • 大连大型网站制作公司今日头条号官网