前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web UI自动化利器-Playwright

Web UI自动化利器-Playwright

作者头像
沈宥
发布2022-12-05 14:26:46
6790
发布2022-12-05 14:26:46
举报
一、安装

1、官方文档:https://playwright.dev/python/docs/intro
2、Git:https://github.com/Microsoft/playwright-python
3、pypi:https://pypi.org/project/playwright/
4、安装

依赖:Python 3.7 版本及以上 安装过程中会自动安装对应的浏览器和驱动,不需要额外配置 WebDriver

(1)通过pip安装

代码语言:javascript
复制
pip install --upgrade pip
pip install playwright![WeChata015d461b80d2fdc27fabdf405caab2c.png](https://upload-images.jianshu.io/upload_images/1721545-f32bdb0dd0f8c6d8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

playwright install

(2)通过Conda安装

代码语言:javascript
复制
conda config --add channels conda-forge
conda config --add channels microsoft
conda install playwright
playwright install
二、使用教程
1、录制操作,自动生成脚本

(1)代码生成的参数配置

代码语言:javascript
复制
iOSdeMacBook-Pro:~ ios$ playwright codegen --help
Usage: playwright codegen [options] [url]

open page and generate code for user actions

Options:
  -o, --output <file name>        saves the generated script to a file
  --target <language>             language to generate, one of javascript, test, python, python-async, pytest, csharp, csharp-mstest, csharp-nunit, java
                                  (default: "python")
  --save-trace <filename>         record a trace for the session and save it to a file
  -b, --browser <browserType>     browser to use, one of cr, chromium, ff, firefox, wk, webkit (default: "chromium")
  --block-service-workers         block service workers
  --channel <channel>             Chromium distribution channel, "chrome", "chrome-beta", "msedge-dev", etc
  --color-scheme <scheme>         emulate preferred color scheme, "light" or "dark"
  --device <deviceName>           emulate device, for example  "iPhone 11"
  --geolocation <coordinates>     specify geolocation coordinates, for example "37.819722,-122.478611"
  --ignore-https-errors           ignore https errors
  --load-storage <filename>       load context storage state from the file, previously saved with --save-storage
  --lang <language>               specify language / locale, for example "en-GB"
  --proxy-server <proxy>          specify proxy server, for example "http://myproxy:3128" or "socks5://myproxy:8080"
  --proxy-bypass <bypass>         comma-separated domains to bypass proxy, for example ".com,chromium.org,.domain.com"
  --save-har <filename>           save HAR file with all network activity at the end
  --save-har-glob <glob pattern>  filter entries in the HAR by matching url against this glob pattern
  --save-storage <filename>       save context storage state at the end, for later use with --load-storage
  --timezone <time zone>          time zone to emulate, for example "Europe/Rome"
  --timeout <timeout>             timeout for Playwright actions in milliseconds, no timeout by default
  --user-agent <ua string>        specify user agent string
  --viewport-size <size>          specify browser viewport size in pixels, for example "1280, 720"
  -h, --help                      display help for command

Examples:

  $ codegen
  $ codegen --target=python
  $ codegen -b webkit https://example.com

(2)举个例子

  • 启动Chrome浏览器,并将操作生成的代码保存至script.py文件 playwright codegen -o script.py -b chromium
  • 操作内容:打开谷歌浏览器->输入网址www.baidu.com->搜索playwright->点击搜索结果跳转至新的页面
  • 操作过程中脚本录制窗口
  • 操作结束后生成的脚本内容
代码语言:javascript
复制
from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()

    # Open new page
    page = context.new_page()

    # Go to https://www.baidu.com/
    page.goto("https://www.baidu.com/")

    # Fill input[name="wd"]
    page.locator("input[name=\"wd\"]").fill("playwright")

    # Press Enter
    page.locator("input[name=\"wd\"]").press("Enter")
    page.wait_for_url("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=playwright&fenlei=256&rsv_pq=0xd272fa420008bebd&rsv_t=9496e%2B6WkXXT%2BmgTQaenMhJQVTQXmwK36qkPQoVTCuYSoVS3Dzrquf4O17nm&rqlang=en&rsv_enter=1&rsv_dl=tb&rsv_sug3=12&rsv_sug1=12&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&prefixsug=playwright&rsp=5&inputT=7995&rsv_sug4=7996&rsv_jmp=fail")

    # Click text=microsoft/playwright - GitHub
    with page.expect_popup() as popup_info:
        page.locator("text=microsoft/playwright - GitHub").click()
    page1 = popup_info.value
    page.wait_for_url("https://github.com/microsoft/playwright")

    # Go to https://github.com/microsoft/playwright
    page1.goto("https://github.com/microsoft/playwright")

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从头开始学习测试开发 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装
    • 1、官方文档:https://playwright.dev/python/docs/intro
      • 2、Git:https://github.com/Microsoft/playwright-python
        • 3、pypi:https://pypi.org/project/playwright/
          • 4、安装
          • 二、使用教程
            • 1、录制操作,自动生成脚本
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档