日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Selenium2+python自动化33-文件上传(send_keys)

發(fā)布時間:2023/12/20 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Selenium2+python自动化33-文件上传(send_keys) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

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

一般分兩個場景:一種是input標簽,這種可以用selenium提供的send_keys()方法輕松解決;

另外一種非input標簽實現(xiàn)起來比較困難,可以借助autoit工具或者SendKeys第三方庫。

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

一、識別上傳按鈕

1.點開博客園編輯器里的圖片上傳按鈕,彈出”上傳本地圖片”框。

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

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

二、定位iframe

1.這里定位圖片上傳按鈕情況有點復雜,首先它是在iframe上(不懂iframe的看這篇:Selenium2+python自動化14-iframe)

2.這個iframe的id是動態(tài)的,且沒有name屬性,其它屬性也不是很明顯

3.通過搜索發(fā)現(xiàn),這個頁面上有兩個iframe,需要定位的這個iframe是處于第二個位置

4.可以通過標簽定位所有的iframe標簽,然后取對應的第幾個就可以了。

三、文件上傳

1.先定位到文件上傳按鈕,直接調用send_keys()方法就可以實現(xiàn)啦

# coding:utf-8
from selenium import webdriver
import time
profileDir = r'C:\Users\Gloria\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default'
profile = webdriver.FirefoxProfile(profileDir)
driver = webdriver.Firefox(profile)
driver.implicitly_wait(30)
driver.get("http://www.cnblogs.com/yoyoketang/")
driver.find_element_by_link_text("新隨筆").click()
time.sleep(3)
# 點開編輯器圖片
driver.find_element_by_css_selector("img.mceIcon").click()
time.sleep(3)
# 定位所有iframe,取第二個
iframe = driver.find_elements_by_tag_name('iframe')[1]
# 切換到iframe上
driver.switch_to_frame(iframe)

# 文件路徑
driver.find_element_by_name('file').send_keys(r"D:\test\xuexi\test\14.png")

?

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

學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429

?

《selenium+python高級教程》已出書:selenium?webdriver基于Python源碼案例

?

(購買此書送對應PDF版本)

?

?

?

轉載于:https://www.cnblogs.com/yoyoketang/p/6445270.html

總結

以上是生活随笔為你收集整理的Selenium2+python自动化33-文件上传(send_keys)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。