Playwright:修订间差异

无编辑摘要
无编辑摘要
第43行: 第43行:


with sync_playwright() as p:
with sync_playwright() as p:
     browser = p.firefox.launch()
     browser = p.firefox.launch(headless=False)
     page = browser.new_page()
     page = browser.new_page()
     page.goto("https://www.baidu.com/")
     page.goto("https://www.baidu.com/")
     page.screenshot(path="example.png")
    # 输入框输入文字
    # page.locator('//input[@id="kw"]').fill('playwright')
    page.fill('//input[@id="kw"]', 'playwright')
    # 点击搜索按钮
    # page.locator('//input[@id="su"]').click() 
    page.click('//input[@id="su"]')
    # 延迟5秒,单位毫秒
    page.wait_for_timeout(5*1000)   
     page.screenshot(path="截图.png")
     browser.close()
     browser.close()
</syntaxhighlight>
</syntaxhighlight>

2023年4月10日 (一) 07:21的版本

Playwright是微软源的一个Web测试和自动化框架。支持 Chromium、Firefox和WebKit浏览器,LinuxmacOSWindows平台,Python、.NET和Java等多语言。

简介

时间轴

安装

安装Python版本:

# 安装pytest插件版playwright
# pip install pytest-playwright
# 安装Pytest
pip install playwright 

# 安装所有支持的浏览器及配置驱动
# playwright install
# 只安装chrome浏览器及配置驱动,使用playwright install -h可以查看帮助
# 目前支持chromium, chrome, chrome-beta, msedge, msedge-beta, msedge-dev, firefox, webkit浏览器。 
playwright install chrome

了解更多 >> Playwright Python 文档:安装 Playwright Python 文档:入门


快速入门

同步模式

from playwright.sync_api import sync_playwright

playwright = sync_playwright().start()
# 使用playwright.chromium, playwright.firefox or playwright.webkit
# 默认无界面模式,launch使用headless=False设置有界面
browser = playwright.firefox.launch(headless=False)
page = browser.new_page()
page.goto("https://www.baidu.com")
page.screenshot(path="截图.png")
browser.close()
playwright.stop()

更常用使用with语句:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.firefox.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.baidu.com/")
    # 输入框输入文字
    # page.locator('//input[@id="kw"]').fill('playwright') 
    page.fill('//input[@id="kw"]', 'playwright')
    # 点击搜索按钮
    # page.locator('//input[@id="su"]').click()  
    page.click('//input[@id="su"]')
    # 延迟5秒,单位毫秒
    page.wait_for_timeout(5*1000)    
    page.screenshot(path="截图.png")
    browser.close()

代码在Jupyter中运行会出现错误:Error: It looks like you are using Playwright Sync API inside the asyncio loop.Please use the Async API instead.。解决办法:代码保存到测试.py,在终端运行python 测试.py

了解更多 >> Playwright Python 文档:入门


异步模式

使用with语句

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.firefox.launch(headless=False)
        page = await browser.new_page()
        await page.goto("https://wwww.baidu.com")
        print(await page.title())
        await browser.close()

asyncio.run(main())

了解更多 >> Playwright Python 文档:入门


资源

官网

网站

文章