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库的资料请关注毛票票其它相关文章!