1. 程式人生 > >Selenium2+python自動化-文件上傳

Selenium2+python自動化-文件上傳

python 通過 並且 fire jpg 輸入 port NPU click

前言

  文件上傳是web頁面上很常見的一個功能,自動化成功中操作起來卻不是那麽簡單。

  一般分兩個場景:一種是input標簽,這種可以用selenium提供的send_keys()方法輕松解決;另外一種非input標簽實現起來比較困難,可以借助autoit工具或者SendKeys第三方庫。

  本篇以百度的上傳圖片為案例,通過send_keys()方法解決文件上傳問題。

一、識別上傳按鈕

1.點開百度的圖片上傳按鈕,顯示”本地上傳圖片”。

2.用firebug查看按鈕屬性,這種上傳圖片按鈕有個很明顯的標識,它是一個input標簽,並且type屬性的值為file。

3.只要找到這兩個標識,我們就可以直接用send_keys()方法上傳文件了。

技術分享圖片

二、定位元素

  1.用firebug查看按鈕屬性,發現有class屬性;

  2.確定class唯一,所以直接用class語法定位;

from selenium import webdriver
driver = webdriver.Firefox()     # 啟動瀏覽器
driver.get("https://www.baidu.com/")  # 請求地址
driver.find_element_by_class_name("soutu-btn").click()   # 點擊照相機按鈕
‘‘‘ 先定位上傳圖片按鈕,直接send_keys輸入地址 ‘‘‘ driver.find_element_by_class_name("upload-pic").send_keys("D:\xx.jpg")

註釋:

  非input標簽的文件上傳,就不適用於此方法了,需要借助autoit工具或者SendKeys第三方庫。

Selenium2+python自動化-文件上傳