2017-07-18 95 views
1

我們的應用程序有一個頁面,您可以在其中上傳文件。我編寫的代碼將使用SendKeys()將文件路徑發送到文件上傳組件的input標記。但是,這不是在這個頁面上工作。使用Selenium Webdriver將文件上傳到輸入標籤

string filepath = Path.GetFullPath(Directory.GetCurrentDirectory() + @"\..\..\..\Test Files\" + filename); 
uploadInput.Click(); 
uploadInput.SendKeys(filepath); 

我已經確認filepath是絕對正確的。我也證實WebDriver元素是絕對正確的。並且,此代碼確實在我們的應用程序的完全獨立的形式工作。我的猜測是,這個文件上傳組件編碼的方式不能與這種方法兼容。

我還有哪些其他選項可用於上傳文件?注意,控制系統文件瀏覽器完全是出於給我們的測試是在運行環境的問題

編輯:我確認,輸入標籤確實收到我指定的文件。然而,表單的自定義驗證似乎認爲沒有上傳。這可能是我需要與開發人員解決的問題。

+1

它是一個標準的文件上傳HTML元素或者是一個自定義文件上傳替換您的路徑? – Purus

+0

看看這個線程,它有一個適當的解決方案給你:https://stackoverflow.com/questions/3300580/webdriver-file-upload –

回答

0

嘗試從

@"\..\..\..\Test Files\" + filename 

to 

"\\..\\..\\..\\Test Files\\" + filename 

OR

var path= new System.Uri(""\..\..\..\Test Files\" + filename"); 
var bakedPath = uri.AbsoluteUri; 
相關問題