Python中playwright啟動(dòng)瀏覽器與常見運(yùn)行方式詳解
前言
在本文中,我們將介紹如何使用Playwright這一現(xiàn)代化的瀏覽器自動(dòng)化工具來啟動(dòng)瀏覽器,并深入了解其運(yùn)行方式。Playwright是一個(gè)功能強(qiáng)大的工具,可以幫助開發(fā)人員自動(dòng)化測(cè)試、網(wǎng)頁截圖、信息提取等任務(wù)。它支持多種瀏覽器,包括Chrome、Firefox和WebKit。
啟動(dòng)瀏覽器
上一篇文章中,我們安裝了playwright和各個(gè)瀏覽器的測(cè)試版本,所以我們可以直接啟動(dòng)瀏覽器,代碼如下:
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) # 啟動(dòng) chromium 瀏覽器 page = browser.new_page() # 打開一個(gè)標(biāo)簽頁 page.goto("https://www.baidu.com") # 打開百度地址 print(page.title()) # 打印當(dāng)前頁面title browser.close() # 關(guān)閉瀏覽器對(duì)象
打印結(jié)果如下:
注:playwright默認(rèn)是無頭方式啟動(dòng)運(yùn)行瀏覽器的,如果我們想要看到界面,需要查看瀏覽器界面,需要將headless設(shè)置為False
異步運(yùn)行
Playwright 支持2種運(yùn)行方式:同步和異步。如果項(xiàng)目使用asyncio,那我們應(yīng)該使用 async API:
import asyncio from playwright.async_api import async_playwright async def main(): async with async_playwright() as p: browser = await p.chromium.launch(headless=False) page = await browser.new_page() await page.goto("https://www.baidu.com") print(await page.title()) await browser.close() asyncio.run(main())
打印結(jié)果如下:
start stop運(yùn)行方式
除了with方式運(yùn)行之外,我們還可以使用start,stop來運(yùn)行。代碼如下:
from playwright.sync_api import sync_playwright playwright = sync_playwright().start() browser = playwright.chromium.launch(headless=False) page = browser.new_page() page.goto("https://www.baidu.com/") browser.close() playwright.stop()
等待
相對(duì)于selenium,playwright執(zhí)行速度會(huì)更快,為了便于我們查看執(zhí)行的過程,我們可以加上等待來減緩執(zhí)行,但是與selenium不同,playwright通過slow_mo (單位是毫秒)減慢執(zhí)行速度,它的作用范圍是全局的,從啟動(dòng)瀏覽器到操作元素每個(gè)動(dòng)作都會(huì)有等待間隔,方便在出現(xiàn)問題的時(shí)候看到頁面操作情況。使用方法如下:
chromium.launch(headless=False, slow_mo=50)
示例代碼如下:
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False, slow_mo=1000) page = browser.new_page() page.goto("https://www.baidu.com") print(page.title()) page.fill('#kw', "theshy") page.click('#su') browser.close()
注:與selenium不同,playwright不再支持time.sleep(),而是使用page.wait_for_timeout()來實(shí)現(xiàn)等待,當(dāng)我們調(diào)試時(shí)需要等待,即可使用該方法。
示例代碼如下:
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False, slow_mo=1000) page = browser.new_page() page.goto("https://www.baidu.com") print(page.title()) # 等待5秒 page.wait_for_timeout(5000) page.fill('#kw', "theshy") page.click('#su') # 等待3秒 page.wait_for_timeout(3000) browser.close()
運(yùn)行結(jié)果如下:
總結(jié)
本文主要介紹了一些playwright的簡(jiǎn)單使用,playwright的使用與selenium有一些不同,我們需要注意不同點(diǎn),比如playwright默認(rèn)是無頭模式運(yùn)行以及等待的改變。下一篇文章我們將介紹playwright定位元素的方法。
到此這篇關(guān)于Python中playwright啟動(dòng)瀏覽器與常見運(yùn)行方式詳解的文章就介紹到這了,更多相關(guān)Python playwright內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用Playwright模擬API的項(xiàng)目實(shí)踐
- Python自動(dòng)化神器Playwright的用法詳解
- Python寫UI自動(dòng)化之playwright(點(diǎn)擊操作)詳解
- Python?Playwright進(jìn)行常見的頁面交互操作
- 深入理解Playwright的高級(jí)功能和用法
- Python中Playwright模塊進(jìn)行自動(dòng)化測(cè)試的實(shí)現(xiàn)
- 使用Python中的Playwright制作測(cè)試視頻的實(shí)現(xiàn)步驟
- python+playwright 元素操作示例代碼
- 使用Playwright進(jìn)行視覺回歸測(cè)試詳解
- python playwright--pytest-playwright、pytest-base-url插件編寫用例
- Playwright 跟蹤查看器的高級(jí)用法
相關(guān)文章
Python 內(nèi)置函數(shù)memoryview(obj)的具體用法
本篇文章主要介紹了Python 內(nèi)置函數(shù)memoryview(obj)的具體用法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11python基礎(chǔ)知識(shí)(一)變量與簡(jiǎn)單數(shù)據(jù)類型詳解
這篇文章主要介紹了python變量與簡(jiǎn)單數(shù)據(jù)類型詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04python根據(jù)時(shí)間獲取周數(shù)代碼實(shí)例
這篇文章主要介紹了python根據(jù)時(shí)間獲取周數(shù),通過周數(shù)獲取時(shí)間代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框
這篇文章主要介紹了python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07django開發(fā)之settings.py中變量的全局引用詳解
當(dāng)網(wǎng)站里面的一些內(nèi)容,如郵箱,網(wǎng)站標(biāo)題,網(wǎng)站的描述,這些東西我們可以存在數(shù)據(jù)庫中也可以存放在我們的setting 文件中,這篇文章主要給大家介紹了django中settings.py變量的全局引用的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下。2017-03-03python openpyxl方法 zip函數(shù)用法及說明
這篇文章主要介紹了python openpyxl方法 zip函數(shù)用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Python 使用dict實(shí)現(xiàn)switch的操作
這篇文章主要介紹了Python 使用dict實(shí)現(xiàn)switch的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04