2016-05-15 25 views
0

我試圖在兩個瀏覽器中自動進行文件上載,但窗口名稱是Firefox中的「文件上載」,Chrome中的「打開」。我不想寫兩個不同的腳本。在運行時選擇標題和文件名

如何在運行時選擇標題和文件名以實現跨瀏覽器兼容性?我使用Selenium和testNG,AutoIt僅用於文件上傳。

+1

你能分享一下代碼嗎? –

+0

在Firefox中: - ControlFocus(「FILE上傳」,「」,「Edit1」) ControlsetText(「文件上傳」,「」,「Edit1」,「C://file.xls」) ControlClick(「FIle Upload 「」,「」,「Button1」) Chrome: - ControlFocus(「Open」,「」,「Edit1」) ControlsetText(「Open」,「」,「Edit1」,「C://anotherfile.xls 「) ControlClick(」Open「,」「,」Button1「) 標題在不同的瀏覽器上發生變化,所以我的測試失敗了..然後我想編寫一個自動腳本,在運行時接受標題..也有辦法在運行時提供文件名以及? –

+0

@Neha Soni,沒有必要使用AutoIt。 Selenium支持在''元素上調用'sendKeys'進行文件上傳。 –

回答

0

根據所使用的Web瀏覽器設置一個變量,然後使用該變量。下面的代碼應該讓你走上正確的軌道。

$FirefoxUpload = "File upload" 
$ChromeUpload = "Open" 

if WinExists($FirefoxUpload) 
    $UploadWindow = $FirefoxUpload 
elseif WinExists($ChromeUpload) 
    $UploadWindow = $ChromeUpload 
else 
    $UploadWindow = "" 
endif 

if $UploadWindow <> "" 
    ControlFocus($UploadWindow,"","Edit1") 
    ControlsetText($UploadWindow,"","Edit1","C://file.xls") 
    ControlClick($UploadWindow,"","Button1") 
endif 
+0

謝謝你這麼多戴爾我認爲這可能會解決我的問題..我可以做一個運行時間變量爲不同的文件附加? –

+0

是的。如果您希望用戶選擇文件,請查看FileOpenDialog上的幫助。如果你有清單看數組的幫助。或者,也許你在文本文件中有一個文件列表,然後查看AutoIt幫助中的FileOpen,FileRead ...條目。 –