python palywright库基本使用
开源方:微软
安装:pipinstallplaywright;python-mplaywrightinstall
特点:自动化脚本录制;有同步、异步api
生成代码指令:python-mplaywrightcodegen
其他:需要Python3.7及以上;官方api为node版本,python版本待补充
同步:关键字为:sync_playwright
fromtimeimportsleep
fromplaywrightimportsync_playwright
withsync_playwright()asp:
forbrowser_typein[p.chromium,p.firefox,p.webkit]:
browser=browser_type.launch(headless=False)#默认无头,这样为有头模式
page=browser.newPage()
page.goto('http://baidu.com')
page.fill("input[name=\"wd\"]","AirPython")
withpage.expect_navigation():
page.press("input[name=\"wd\"]","Enter")
page.waitForSelector("text=百度热榜")
page.screenshot(path=f'example-{browser_type.name}.png')
sleep(5)
browser.close()
异步:关键字为:async_playwright
importasyncio
fromplaywrightimportasync_playwright
asyncdefmain():
asyncwithasync_playwright()asp:
forbrowser_typein[p.chromium,p.firefox,p.webkit]:
browser=awaitbrowser_type.launch(headless=False)
page=awaitbrowser.newPage()
awaitpage.goto('http://baidu.com')
awaitpage.fill("input[name=\"wd\"]","AirPython")
awaitpage.press("input[name=\"wd\"]","Enter")
awaitpage.waitForSelector("text=百度热榜")
awaitpage.screenshot(path=f'example-{browser_type.name}.png')
awaitbrowser.close()
asyncio.get_event_loop().run_until_complete(main())
集成pytest测试
@pytest.fixture(scope="session")
deftest_playwright_is_visible_on_google(page):
page.goto("https://www.google.com")
page.type("input[name=q]","PlaywrightGitHub")
page.click("input[type=submit]")
page.waitForSelector("text=microsoft/Playwright")
执行JS代码
fromplaywrightimportsync_playwright
withsync_playwright()asp:
browser=p.firefox.launch()
page=browser.newPage()
page.goto('https://www.example.com/')
dimensions=page.evaluate('''()=>{
return{
width:document.documentElement.clientWidth,
height:document.documentElement.clientHeight,
deviceScaleFactor:window.devicePixelRatio
}}''')
print(dimensions)
browser.close()
中断网络请求
fromplaywrightimportsync_playwright withsync_playwright()asp: browser=p.chromium.launch() page=browser.newPage() deflog_and_continue_request(route,request): print(request.url) route.continue_()
记录并继续所有网络请求
page.route('**',lambdaroute,request:log_and_continue_request(route,request))
page.goto('http://todomvc.com')
browser.close()
以上就是pythonpalywright库基本使用的详细内容,更多关于pythonpalywright库的资料请关注毛票票其它相关文章!