selenium+python自動(dòng)化78-autoit參數(shù)化與批量上傳功能的實(shí)現(xiàn)
前言
前一篇autoit實(shí)現(xiàn)文件上傳打包成.exe可執(zhí)行文件后,每次只能傳固定的那個(gè)圖片,我們實(shí)際測試時(shí)候希望傳不同的圖片。
這樣每次調(diào)用的時(shí)候,在命令行里面加一個(gè)文件路徑的參數(shù)就行。
一、命令行參數(shù)
1.參數(shù)化傳入的參數(shù),可以通過autoit的命令行參數(shù):
myProg.exe param1 “This is a string parameter” 99
在腳本中,可用以下變量獲取命令行參數(shù):
$CmdLine[0] ; = 3 $CmdLine[1] ; = param1 $CmdLine[2] ; = "This is a string parameter" $CmdLine[3] ; = 99 $CmdLineRaw ; = 'param1 "This is a string parameter" 99'
- $CmdLine[0] 獲取的是命令行參數(shù)的總數(shù),在上例中$CmdLine[0]=3
- $CmdLine[1]~$CmdLine[63] 獲取的是命令行參數(shù)第1到第63位,這個(gè)方式最多只能獲取63個(gè)參數(shù),不過正常情況下是足夠用的
- $CmdLineRaw 獲取的是未拆分的所有參數(shù),是一個(gè)長字符串,這種情況下不局限與63個(gè)參數(shù)
2.將如下代碼保存為.exe文件后(文件名隨便取一個(gè):cmdjpg.exe),在cmd執(zhí)行一次,看是否成功
WinActivate("文件上傳");
ControlSetText("文件上傳", "", "Edit1", $CmdLine[1] );
Sleep(2000);
ControlClick("文件上傳", "", "Button1");

3.用python代碼執(zhí)行
# 需上傳圖片的路徑
file_path = "D:\\1.png"
# 執(zhí)行autoit上傳文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_path) # 你自己本地的
二、批量上傳圖片
1.方法一:先把要上傳的圖片放到一個(gè)list下,然后for循環(huán)
# 把需要上傳的圖片放到一個(gè)list下
all_png = ["D:\\1.png", "D:\\2.png", "D:\\3.png", "D:\\4.png"]
# 循環(huán)點(diǎn)擊上傳圖片
for i in all_png:
# 1點(diǎn)開編輯器圖片
# 2點(diǎn)開文件上傳按鈕
# 執(zhí)行autoit上傳文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % i) # 你自己本地的.exe路徑
time.sleep(3)
2.方法二:把要上傳的圖片編號(hào),如:0.png , 1.png, 2.png這種(從0開始編號(hào)),放到同一目錄下,然后for循環(huán)
# 循環(huán)點(diǎn)擊上傳圖片
for i in range(4):
# 1點(diǎn)開編輯器圖片
# 2點(diǎn)開文件上傳按鈕
# 文件名
file_name = "D:\\%s.png" % i # 參數(shù)化路徑名稱
# 執(zhí)行autoit上傳文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_name) # 你自己本地的.exe路徑
time.sleep(3)
三、參考代碼
# coding:utf-8
from selenium import webdriver
import time
import os
# 加載配置文件實(shí)現(xiàn)免登錄
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)
# 方法一:把需要上傳的圖片放到一個(gè)list下
all_png = ["D:\\1.png", "D:\\2.png", "D:\\3.png", "D:\\4.png"]
for i in all_png:
# 點(diǎn)開編輯器圖片
driver.find_elements_by_css_selector("img.mceIcon")[0].click()
time.sleep(3)
# 定位所有iframe,取第二個(gè)
iframe = driver.find_elements_by_tag_name('iframe')[1]
# 切換到iframe上
driver.switch_to_frame(iframe)
# 點(diǎn)開文件上傳按鈕
driver.find_element_by_name('file').click()
time.sleep(3)
# 執(zhí)行autoit上傳文件
print i
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % i) # 你自己本地的.exe路徑
time.sleep(3)
driver.switch_to_default_content() # 切回到主頁面
# # 方法二:循環(huán)點(diǎn)擊上傳圖片
# for i in range(4):
# # 1點(diǎn)開編輯器圖片
#
# # 2點(diǎn)開文件上傳按鈕
#
# # 文件名
# file_name = "D:\\%s.png" % i # 參數(shù)化路徑名稱
#
# # 執(zhí)行autoit上傳文件
# os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_name) # 你自己本地的.exe路徑
# time.sleep(3)
到此這篇關(guān)于selenium+python自動(dòng)化78-autoit參數(shù)化與批量上傳的文章就介紹到這了,更多相關(guān)python自動(dòng)化批量上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python實(shí)現(xiàn)發(fā)送郵件的常用方法小結(jié)
在日常工作中,我們可能經(jīng)常會(huì)用到發(fā)送郵件,但如果每次都人工來發(fā)送,那豈不是很麻煩,今天我們就來講解下如何通過python語言來優(yōu)雅地發(fā)送郵件2024-04-04
Python 實(shí)現(xiàn) 貪吃蛇大作戰(zhàn) 代碼分享
本文給大家分享的是一個(gè)使用cocos2d-python游戲引擎庫制作出來的貪吃蛇大作戰(zhàn)的游戲代碼,基于Python 2.7 和 cocos2d 庫,有需要的小伙伴可以參考下2016-09-09
python2 中 unicode 和 str 之間的轉(zhuǎn)換及與python3 str 的區(qū)別
這篇文章主要介紹了python2 中 unicode 和 str 之間的轉(zhuǎn)換及與python3 str 的區(qū)別 本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Python退出While循環(huán)的3種方法舉例詳解
在每次循環(huán)結(jié)束后,我們需要檢查循環(huán)條件是否滿足。如果條件滿足,則繼續(xù)執(zhí)行循環(huán)體內(nèi)的代碼,否則退出循環(huán),這篇文章主要給大家介紹了關(guān)于Python退出While循環(huán)的3種方法,需要的朋友可以參考下2023-10-10
python腳本框架webpy模板控制結(jié)構(gòu)
這篇文章主要為大家介紹了python腳本框架webpy模板控制結(jié)構(gòu)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11

