2017-09-04 56 views
0

我想通過SendKeys()在Firefox中發送文件路徑上傳按鈕,它給我一個錯誤「找不到文件:c: \ filename.txt(IndexOutOfBounds)「上傳文件SendKeys不工作在Firefox 55.0.3

代碼上傳:

public static void UploadTheFile() 
    { 
     IWebElement fileUpload = Drivers._driverInstance.FindElement(By.Id("file-upload-input")); 
     try 
     { 
      fileUpload.SendKeys(@"C:\test file.txt"); 
     } 
     catch (Exception e) 
     { 
      throw e; 
     } 
     //Thread.Sleep(3000); 
     _wait.Until(d => Drivers._driverInstance.FindElement(By.Id("upload-button")).Displayed); 
     IWebElement element = Drivers._driverInstance.FindElement(By.Id("upload-button")); 
     IJavaScriptExecutor js = (IJavaScriptExecutor)Drivers._driverInstance; 
     js.ExecuteScript("arguments[0].click();", element); 
    } 

相同的代碼正在上週五在Firefox 54,它仍然在Chrome和IE瀏覽器的工作原理。

請讓我知道有問題的解決方法。

謝謝

回答

2

這是一個known issue in geckodriver/marionette。該問題已在更高版本的Firefox中得到修復,並且需要geckodriver的新版本。與此同時,可以通過在創建Firefox會話時使用的FirefoxOptions中的dom.file.createInChild首選項設置爲true來解決此問題。

+0

謝謝@JimEvans。這可以作爲臨時工作。 – Sudeepthi

1

我面臨同樣的問題,並得到它解決,問題是在Geckodriver和問題似乎是固定的(check here),但您可能需要等待釋放或您可以使用我跟隨的測試版本。

  • 獲取最新GeckoDriver
  • 下載版本的Firefox安裝56.0b5

這應該可以解決您的問題,並且確保在執行測試要裝入Firefox應用程序的正確版本。

相關問題