playwright
为现代web应用提供可靠的端到端测试能力,是实现web自动化的重要工具。
介绍
- 跨浏览器:
playwright
支持所有现代渲染引擎,包括Chromium、WebKit和Firefox
- 跨平台的:在Windows、Linux和macOS上进行测试,本地或CI,无头或头部
- 跨语言:支持在 TypeScript、JavaScript、Python、.net,、Java中使用
playwright
API
- 测试移动网络:原生移动模拟的谷歌Chrome为Android和移动Safari。同样的渲染引擎可以在桌面和云中工作
安装
playwright install
npm i -D playwright
pip install playwright==1.8.0a1
python -m playwright codegen --help
示例
python -m playwright codegen -b webkit https://www.xiexianbin.cn/search/
根据上面命令添加搜索和截图的代码示例:
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.webkit.launch(headless=False)
context = browser.new_context()
# Open new page
page = context.new_page()
# Go to https://www.www.xiexianbin.cn/search/
page.goto("https://www.xiexianbin.cn/search/")
# Fill an input with the name "search"
page.fill("input[name=\"search\"]", "谢先斌")
# page.locator('name=search').fill('value')
# Click an element with data-test-id "submit"
# page.click("a[target=\"_blank\"]")
page.locator("[placeholder=\"Search\"]").click()
page.locator("input[name=\"search\"]").press("Enter")
page.wait_for_selector(selector="blockquote[id=\"search-result\"]", state="visible")
# screen shot
page.screenshot(path='search-谢先斌.png')
# ---------------------
context.close()
browser.close()
if __name__ == '__main__':
with sync_playwright() as playwright:
run(playwright)