2017-04-19 56 views
0

我正在開發一個場景,其中使用choose file機器人框架關鍵字上傳文件。測試運行時,當選擇文件執行時,它會擊中<input type="file">元素的定位器,UI將在頁面底部顯示一個紅色框(請參閱附件),但文件未上傳。選擇文件機器人框架不上傳文件

enter image description here

林不知道如果UI不知道如何處理上傳,或者如果在我的代碼中的錯誤:

choose file xpath=/html/body/div/div/div/div[2]/div/div/div/div/div/div/div/div/div[1]/div[1]/div[2]/div/span ${dataDir}studentSAT.csv 

${dataDir}變量包含OS完整路徑到該文件,並且該文件在該位置。作爲驗證點,我嘗試將文件名更改爲不存在的文件名,並且機器人拋出錯誤,指出數據不可用。

有沒有人遇到過這個?

+0

我沒有看到附件。 –

+0

感謝Bryan,幾分鐘前意識到!剛剛更新了截圖。 –

+0

您正在使用哪種瀏覽器/驅動程序?我使用最新的Chrome瀏覽器驅動程序和Chrome瀏覽器57.x,選擇了文件關鍵字。 – ponkape

回答

0

經過一些額外的挖掘,事實證明,在這種情況下,<input type=file>元素不可見。左下方的紅色框是瀏覽器試圖處理傳遞給它的文件,而不知道與不可見的元素進行交互的方式。 將元素顯示屬性從「style.display =」none「`更改爲」style.display =「block」',允許該元素在屏幕上可見並被選中。

在嘗試傳遞.csv文件之前,我實現了'執行javascript'關鍵字步驟,現在它工作得非常好。

代碼:

execute javascript window.frames[0]; document.querySelector("input[name='file-uploader']").style.display = "block"; 

enter image description here

0

我之前遇到過同樣的問題,我嘗試了多種方法,比如模擬關鍵字操作和在文件上傳對話框中輸入文件路徑,使用Choose File Keyword,AutoIT Library for Robot Framework。 1)如果你打算在本地機器上運行你的測試,我會說使用pyautogui(對於Python)和Robot Class(對於Java),並使用Tab/Enter/Key Press方法來完成這項工作。 2)如果您打算在遠程機器上運行測試,也就是VM,請在RemoteMachine/VM上設置AutoIT並使用AutoIT庫for Robot Framework。

+0

感謝您的評論Tanmay - 唉無論是開發環境和無頭虛擬機環境都是Linux系統 - 最後我檢查,AutoIT不是Linux友好的,除非在葡萄酒程序中運行,並且所需的功能聽起來像它不能很好地工作辦法。 –

相關問題