最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?playwright?庫上傳和下載操作(自動(dòng)化測試?playwright)

 更新時(shí)間:2023年05月17日 09:33:19   作者:番茄牛腩不吃番茄  
這篇文章主要介紹了python?playwright?庫上傳和下載操作(自動(dòng)化測試?playwright?),playwright中的上傳和下載比selenium的上傳和下載要簡便些,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

python:自動(dòng)化測試 playwright 庫上傳和下載

今天主要是聊聊playwright中的上傳和下載操作,playwright中的上傳和下載比selenium的上傳和下載要簡便些,例:selenium中的上傳還要有對(duì)話框選擇文件,再點(diǎn)擊上傳,而playwright中是找到元素執(zhí)行點(diǎn)擊后設(shè)置一個(gè)文件位置。

上傳

操作語法

# 選擇一個(gè)文件
page.set_input_files('input#upload', 'myfile.pdf')
# 選擇多個(gè)文件
page.set_input_files('input#upload', ['file1.txt', 'file2.txt'])
# 刪除所有選定的文件
page.set_input_files('input#upload', [])
# 從內(nèi)存上傳緩沖區(qū)
page.set_input_files(
    "input#upload",
    files=[
        {"name": "test.txt", "mimeType": "text/plain", "buffer": b"this is a test"}
    ],
)

上述的代碼中這種是那種含輸入元素(它動(dòng)態(tài)創(chuàng)建的)的上傳操作,如果是可點(diǎn)擊的上傳操作,可以直接使用下述語法:

with page.expect_file_chooser() as fc_info:
    page.click("upload")
file_chooser = fc_info.value
file_chooser.set_files("myfile.pdf")

上傳示例
該示例主要演示的是可點(diǎn)擊的上傳操作,動(dòng)態(tài)輸入元素的上傳沒找到對(duì)應(yīng)示例:

import time
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False
    )
    page = browser.new_page()
    page.goto("https://域名/user/login")
    page.click('//*[text()="密碼登錄"]')
    page.click('#user_name')
    page.fill('#user_name', "賬號(hào)")
    page.click('#password')
    page.fill('#password', "密碼")
    page.click('//*[text()="登 錄"]')
    time.sleep(2)
    page.click('//*[text()="學(xué)習(xí)資源"]')
    page.click('//*[@href="/manager/resource/directory" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" ]')
    page.click('//*[text()="導(dǎo)入導(dǎo)出"]')
    time.sleep(2)
    with page.expect_file_chooser() as fc_info:
        page.click('//*[text()=" 上傳文件"]')
    file_chooser = fc_info.value
    print(file_chooser)
    file_chooser.set_files('E:\playwrightPyinstaller\導(dǎo)入知識(shí)目錄.xlsx')
  • expect_file_chooser方法是官方提供的上傳方法,不作過多解釋,用就是了
  • fc_info.value是獲取到了上傳的相關(guān)元素,然后賦值給file_chooser
  • 調(diào)用set_files方法,然后傳入文件路徑

print(file_chooser)打印的結(jié)果如下:

<FileChooser page=<Page url='https://域名/manager/resource/directory'> element=JSHandle@<input type="file" accept=".xlsx,.xls"/>>
Process finished with exit code 0

下載

操作語法

# 開始等待下載
with page.expect_download() as download_info:
    # 執(zhí)行啟動(dòng)下載的操作
    page.click("button#delayed-download")
download = download_info.value
# 等待下載過程完成
path = download.path()

上述代碼是下載的語法,這也是處理文件下載的最簡單方法。

下載示例

import time
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False
    )
    context = browser.new_context(
        accept_downloads=True
    )
    page = context.new_page()
    page.goto("https://域名/user/login")
    page.click('//*[text()="密碼登錄"]')
    page.click('#user_name')
    page.fill('#user_name', "賬號(hào)")
    page.click('#password')
    page.fill('#password', "密碼")
    page.click('//*[text()="登 錄"]')
    time.sleep(2)
    page.click('//*[text()="學(xué)習(xí)資源"]')
    page.click('//*[@href="/manager/resource/directory" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" ]')
    page.click('//*[text()="導(dǎo)入導(dǎo)出"]')
    time.sleep(2)
    with page.expect_download() as download_info:
        page.click('//*[@href="http://域名/template/導(dǎo)入知識(shí)目錄.xlsx" rel="external nofollow"  rel="external nofollow" ]')
    download = download_info.value
    print(download)
    print(download.path())
  • 下載和上傳的區(qū)別就是必須要引入上下文,官網(wǎng)提供的上下文就是使用browser.new_context(accept_downloads=True),方法的括號(hào)中必須要有accept_downloads=True,不然運(yùn)行就會(huì)報(bào)錯(cuò)。
  • expect_download方法是官方提供的下載方法,不作過多解釋,用就是了
  • download_info.value是獲取到了上傳的相關(guān)元素,然后賦值給download

print(file_chooser)打印的結(jié)果如下:

<Download url='https://域名/template/%E5%AF%BC%E5%85%A5%E7%9F%A5%E8%AF%86%E7%9B%AE%E5%BD%95.xlsx' suggested_filename='導(dǎo)入知識(shí)目錄.xlsx'>
Process finished with exit code 0

print(download.path())是獲取下載后的存儲(chǔ)路徑,打印的結(jié)果如下:

C:\Users\lifeng\AppData\Local\Temp\playwright-artifacts-H0nUyZ\2b71684d-7471-4055-9581-6cb364b50efc
Process finished with exit code 0

當(dāng)然您也可以進(jìn)行自定義存儲(chǔ)路徑,這個(gè)官方也是提供了相應(yīng)方法:

import time
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False
    )
    context = browser.new_context(
        accept_downloads=True
    )
    page = context.new_page()
    page.goto("https://lms3.9first.com/user/login")
    page.click('//*[text()="密碼登錄"]')
    page.click('#user_name')
    page.fill('#user_name', "賬號(hào)")
    page.click('#password')
    page.fill('#password', "密碼")
    page.click('//*[text()="登 錄"]')
    time.sleep(2)
    page.click('//*[text()="學(xué)習(xí)資源"]')
    page.click('//*[@href="/manager/resource/directory" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" ]')
    page.click('//*[text()="導(dǎo)入導(dǎo)出"]')
    time.sleep(2)
    with page.expect_download() as download_info:
        page.click('//*[@href="http://域名/template/導(dǎo)入知識(shí)目錄.xlsx" rel="external nofollow"  rel="external nofollow" ]')
    download = download_info.value
    download.save_as('E:\playwrightPyinstaller\導(dǎo)入知識(shí)目錄.xlsx')

download.save_as(path)方法即是官方提供的自定義路徑存儲(chǔ),path路徑必須要是路徑和文件名稱在一起,不然就會(huì)拋出權(quán)限不足的錯(cuò)誤異常。

以上總結(jié)或許能幫助到你,或許幫助不到你,但還是希望能幫助到你,如有疑問、歧義,直接私信留言會(huì)及時(shí)修正發(fā)布;非常期待你的點(diǎn)贊和分享喲,謝謝!

到此這篇關(guān)于python playwright 庫上傳和下載操作(自動(dòng)化測試 playwright )的文章就介紹到這了,更多相關(guān)python playwright 庫上傳和下載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python為Web端集成Markdown功能的完整步驟

    使用Python為Web端集成Markdown功能的完整步驟

    Markdown作為一種輕量級(jí)標(biāo)記語言,以其簡潔的語法和易讀易寫的特性,已經(jīng)成為技術(shù)文檔、博客和內(nèi)容管理系統(tǒng)的首選格式,在Web開發(fā)中,集成Markdown功能可以極大提升內(nèi)容創(chuàng)作的效率和用戶體驗(yàn),本文將詳細(xì)介紹如何使用Python為Web應(yīng)用集成完整的Markdown功能
    2025-09-09
  • Python錯(cuò)誤AttributeError:?'NoneType' object?has?no?attribute問題的徹底解決方法

    Python錯(cuò)誤AttributeError:?'NoneType' object?h

    在?Python?項(xiàng)目開發(fā)和調(diào)試過程中,經(jīng)常會(huì)碰到這樣一個(gè)異常信息AttributeError:?'NoneType'?object?has?no?attribute?'foo',本文將從問題產(chǎn)生的根源、常見觸發(fā)場景、深度排查方法,一直到多種修復(fù)策略與最佳實(shí)踐,需要的朋友可以參考下
    2025-07-07
  • python運(yùn)行shell命令subprocess的實(shí)現(xiàn)

    python運(yùn)行shell命令subprocess的實(shí)現(xiàn)

    本文主要介紹了python運(yùn)行shell命令subprocess的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python創(chuàng)建學(xué)生成績管理系統(tǒng)

    python創(chuàng)建學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python創(chuàng)建學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Django框架封裝外部函數(shù)示例

    Django框架封裝外部函數(shù)示例

    這篇文章主要介紹了Django框架封裝外部函數(shù),結(jié)合Django框架表單登陸功能示例分析了封裝外部函數(shù)的相關(guān)操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05
  • Python中如何判斷當(dāng)前操作系統(tǒng)類型

    Python中如何判斷當(dāng)前操作系統(tǒng)類型

    這篇文章主要為大家詳細(xì)介紹了Python中如何判斷當(dāng)前操作系統(tǒng)類型,文中一共提供了兩種方法,文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下
    2025-09-09
  • Django+RestFramework API接口及接口文檔并返回json數(shù)據(jù)操作

    Django+RestFramework API接口及接口文檔并返回json數(shù)據(jù)操作

    這篇文章主要介紹了Django+RestFramework API接口及接口文檔并返回json數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 實(shí)例講解Python中sys.argv[]的用法

    實(shí)例講解Python中sys.argv[]的用法

    在閱讀facenet網(wǎng)絡(luò)的代碼的時(shí)候,遇到了sys.argv[]這個(gè)函數(shù),所以下面這篇文章主要給大家介紹了關(guān)于Python中sys.argv[]用法的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 淺析Python中的多進(jìn)程編程

    淺析Python中的多進(jìn)程編程

    在這篇文章中,我們將專注于討論P(yáng)ython中的多進(jìn)程編程,例如進(jìn)程的創(chuàng)建、管理和同步,以及一些更高級(jí)的概念,如進(jìn)程池,需要的可以參考一下
    2023-07-07
  • python屬于哪種語言

    python屬于哪種語言

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python屬于哪種語言的一篇基礎(chǔ)內(nèi)容文章,有興趣的朋友們可以參考下。
    2020-08-08

最新評(píng)論

三原县| 盐津县| 中超| 吉木乃县| 恩施市| 富裕县| 阳西县| 搜索| 武乡县| 抚远县| 河南省| 增城市| 康定县| 长宁县| 陆良县| 江孜县| 墨玉县| 城步| 行唐县| 广河县| 宜阳县| 西华县| 天台县| 扶风县| 磐石市| 漳浦县| 庆城县| 安陆市| 旬阳县| 兰溪市| 德格县| 陇南市| 河西区| 许昌县| 关岭| 东乌珠穆沁旗| 高陵县| 剑川县| 太仆寺旗| 呼伦贝尔市| 肃南|