python實現web自動化實現文件上傳


目的:python實現web自動化實現文件上傳

例子:在https://www.layui.com/demo/upload.html網站中點擊“上傳圖片”,需在windows系統彈窗進行文件上傳;

 

 一、 環境准備:

1、python的web自動化環境

    selenium的安裝:pip install selenium;

    chromediver的下載及環境配置:下載的chromediver的驅動需與本地的谷歌瀏覽器版本相對應,並安裝Python的路徑中Scripts目錄中;

2、pywinauto的安裝

    Pywinauto:python中的一個用於操作windows下GUI程序的庫,可以用來做PC自動化,web自動化可以借助它來實現文件上傳;

    安裝命令:pip install pywinauto

二、selenium的基本使用

使用selenium打開瀏覽器訪問頁面

from selenium import webdriver
driver = webdriver.Chrome()
url = r"https://www.layui.com/demo/upload.html"
driver.get(url)
time.sleep(2)

三、文件窗口上傳的文析

1、對windows系統彈窗進行文件上傳的操作【如下圖所示】,具體分析:

  • 文件路徑的填寫;
  • 文件名的填寫;
  • 文件名填寫后點擊“打開”

 

2、實現文件上傳的具體步驟:

  • 借用python中的pywinauto模塊中Desktop庫(Desktop庫的作用:對windows系統桌面進行操作),則需導入相對應的模塊:from pywinauto import Desktop
  • 借助控件精靈:ViewWizard,ViewWizard的作用:獲取窗口的控件信息;

3、文件上傳具體代碼實現:

from selenium import webdriver

import time

from pywinauto import Desktop   #導入Desktop庫,實現對windows系統桌面進行操作

from pywinauto.keyboard import send_keys   #導入send_keys庫,實現模擬鍵盤操作

 #打開瀏覽器與訪問網頁

driver = webdriver.Chrome()

url = r"https://www.layui.com/demo/upload.html"

driver.get(url)

time.sleep(2)

#獲取上傳圖片的定位元素

driver.find_element_by_xpath('//button[@id="test1"]').click()

app = Desktop()  #創建操作桌面的對象

dlg = app["打開"]   #獲取彈窗的窗口標題

#dlg.print_ctrl_ids()   打印窗口的所有控件信息

dlg["地址: xiaominToolbar"].click()   #獲取文件路徑填寫輸入框並點擊

send_keys("D:\圖片")     #在文件路徑填寫輸入框輸入文件存在的路徑

send_keys("{VK_RETURN}")  #輸入文件路徑后按回車鍵

dlg["文件名(&N):Edit"].type_keys("小小.jpg")  #獲取文件名輸入框並填寫文件名

dlg["打開(&O)"].click()  #獲取“打開”控件並點擊

time.sleep(3)

driver.close()

額外知識:

實現多文件上傳時,在多文件上傳時,需單引號(‘’)括起並文件名與文件名之間需用空格隔開,再最后一個文件名后添加一個空格;

dlg["文件名(&N):Edit"].type_keys(‘"小小.jpg" "小.jpg" ‘)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM