selenium之 autoit命令列引數

2021-07-25 12:36:21 字數 1480 閱讀 7211

想要引數化傳入的引數,可以通過autoit的命令列引數:

myprog.exe param1 「this is a string parameter」 99

在指令碼中,可用以下變數獲取命令列引數:

$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] 獲取的是命令列引數的總數,在上例中$cmdline[0]=3 

$cmdline[1]~$cmdline[63] 獲取的是命令列引數第1到第63位,這個方式最多只能獲取63個引數,不過正常情況下是足夠用的 

$cmdlineraw 獲取的是未拆分的所有引數,是乙個長字串,這種情況下不侷限與63個引數

下面我們小小實踐一下:

示例**:

通過autoit的獲取物件並編輯指令碼:

controlfocus("檔案上傳", "", "edit1")

winwait("[class:#32770]", "", 10)

controlsettext("檔案上傳" ,"", "edit1", $cmdline[1])

sleep(2000)

controlclick("檔案上傳", "","button1");

通過aut2exe工具將指令碼轉成exe檔案(upfile.exe)

我們先通過命令列試試,開啟網頁上傳彈框,然後在cmd中執行該指令碼:

d:\upfile.exe

"d:\1.html"

成功!

接下來就是用python用os模組來呼叫該檔案了:

# -*- coding: utf-8 -*-

from selenium import webdriver

import os

import time

driver = webdriver.firefox()

driver.get('')

driver.find_element_by_id('file').click()

time.sleep(1)

os.system('d:\\upfile.exe "d:\\1.html"') # 這裡可以對傳參進行引數化,我們可以通過py指令碼來控制所要上傳的檔案了

time.sleep(3)

driver.quit()

執行,成功!

當然,這裡只是個示例,實際上對於這種input標籤,我們直接send_keys就可以了。今後再專門討論上傳的處理。

AutoIt學習資料

autoit 目前最新是v3版本,這是乙個使用類似basic指令碼語言的 免費軟體 它設計用於 windows gui 圖形使用者介面 中進行 自動化 操作.它利用模擬鍵盤按鍵,滑鼠移動和視窗 控制項的組合來實現自動化任務 比如自動安裝 而這是其它語言不可能做到或無可靠方法實現的 例如 vbscri...

Autoit 知識要點

fileexists函式 myfile d 1.txt 檔案路徑 if fileexists myfile then filedelete myfile else msgbox 0,提示 檔案不存在 endif換行符號 crlf msgbox 0,換行 第一行 crlf 第二行 5 run coms...

AutoIT測試例項

autoit是一款非常強大的免費功能自動化測試工具,使用它可以輕鬆實現web和winform的自動化測試。其指令碼語言au3語法類似於vb語言和vbs指令碼語言,對於經常使用qtp的童鞋來說,非常容易上手。以下是乙個使用autoit測試web登入的乙個例項。首先先介紹一下待測 待測 是乙個彩鈴製作 ...