欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中playwright啟動瀏覽器與常見運行方式詳解

 更新時間:2024年05月02日 07:51:27   作者:霍格沃茲測試開發(fā)學社  
Playwright是一個功能強大的工具,可以幫助開發(fā)人員自動化測試、網(wǎng)頁截圖、信息提取等任務,本文主要介紹了如何使用Playwright來啟動瀏覽器,感興趣的可以了解下

前言

在本文中,我們將介紹如何使用Playwright這一現(xiàn)代化的瀏覽器自動化工具來啟動瀏覽器,并深入了解其運行方式。Playwright是一個功能強大的工具,可以幫助開發(fā)人員自動化測試、網(wǎng)頁截圖、信息提取等任務。它支持多種瀏覽器,包括Chrome、Firefox和WebKit。

啟動瀏覽器

上一篇文章中,我們安裝了playwright和各個瀏覽器的測試版本,所以我們可以直接啟動瀏覽器,代碼如下:

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)          # 啟動 chromium 瀏覽器
    page = browser.new_page()              # 打開一個標簽頁
    page.goto("https://www.baidu.com")     # 打開百度地址
    print(page.title())                    # 打印當前頁面title
    browser.close()                        # 關閉瀏覽器對象

打印結果如下:

注:playwright默認是無頭方式啟動運行瀏覽器的,如果我們想要看到界面,需要查看瀏覽器界面,需要將headless設置為False

異步運行

Playwright 支持2種運行方式:同步和異步。如果項目使用asyncio,那我們應該使用 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())

打印結果如下:

start stop運行方式

除了with方式運行之外,我們還可以使用start,stop來運行。代碼如下:

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()

等待

相對于selenium,playwright執(zhí)行速度會更快,為了便于我們查看執(zhí)行的過程,我們可以加上等待來減緩執(zhí)行,但是與selenium不同,playwright通過slow_mo (單位是毫秒)減慢執(zhí)行速度,它的作用范圍是全局的,從啟動瀏覽器到操作元素每個動作都會有等待間隔,方便在出現(xiàn)問題的時候看到頁面操作情況。使用方法如下:

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()來實現(xiàn)等待,當我們調(diào)試時需要等待,即可使用該方法。

示例代碼如下:

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()

運行結果如下:

總結

本文主要介紹了一些playwright的簡單使用,playwright的使用與selenium有一些不同,我們需要注意不同點,比如playwright默認是無頭模式運行以及等待的改變。下一篇文章我們將介紹playwright定位元素的方法。

到此這篇關于Python中playwright啟動瀏覽器與常見運行方式詳解的文章就介紹到這了,更多相關Python playwright內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解Django admin高級用法

    詳解Django admin高級用法

    這篇文章主要介紹了Django admin高級用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Python 內(nèi)置函數(shù)memoryview(obj)的具體用法

    Python 內(nèi)置函數(shù)memoryview(obj)的具體用法

    本篇文章主要介紹了Python 內(nèi)置函數(shù)memoryview(obj)的具體用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 使用Python的PEAK來適配協(xié)議的教程

    使用Python的PEAK來適配協(xié)議的教程

    這篇文章主要介紹了使用Python的PEAK來適配協(xié)議的教程,來自于IBM官方網(wǎng)站技術文檔,需要的朋友可以參考下
    2015-04-04
  • python基礎知識(一)變量與簡單數(shù)據(jù)類型詳解

    python基礎知識(一)變量與簡單數(shù)據(jù)類型詳解

    這篇文章主要介紹了python變量與簡單數(shù)據(jù)類型詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • python根據(jù)時間獲取周數(shù)代碼實例

    python根據(jù)時間獲取周數(shù)代碼實例

    這篇文章主要介紹了python根據(jù)時間獲取周數(shù),通過周數(shù)獲取時間代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • python快速進階利用Tkinter定制一個信息提示框

    python快速進階利用Tkinter定制一個信息提示框

    這篇文章主要介紹了python快速進階利用Tkinter定制一個信息提示框,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • django開發(fā)之settings.py中變量的全局引用詳解

    django開發(fā)之settings.py中變量的全局引用詳解

    當網(wǎng)站里面的一些內(nèi)容,如郵箱,網(wǎng)站標題,網(wǎng)站的描述,這些東西我們可以存在數(shù)據(jù)庫中也可以存放在我們的setting 文件中,這篇文章主要給大家介紹了django中settings.py變量的全局引用的相關資料,文中介紹的非常詳細,需要的朋友可以參考下。
    2017-03-03
  • python openpyxl方法 zip函數(shù)用法及說明

    python openpyxl方法 zip函數(shù)用法及說明

    這篇文章主要介紹了python openpyxl方法 zip函數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python 使用dict實現(xiàn)switch的操作

    Python 使用dict實現(xiàn)switch的操作

    這篇文章主要介紹了Python 使用dict實現(xiàn)switch的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python3.6生成器yield用法實例分析

    python3.6生成器yield用法實例分析

    這篇文章主要介紹了python3.6生成器yield用法,結合實例形式分析了Python3.6中生成器yield的功能、用法及相關操作注意事項,需要的朋友可以參考下
    2019-08-08

最新評論