2016-03-07 72 views

回答

0

這是使用Base64和JS哈克文件上傳解決方案,但它的工作原理,所以哎,我希望你找到這個有用:

public CorePage UploadHack(string fileInputId, string contentType, string fileContent, string fileName, string angularScopeVar) 
    { 
     UploadFile(_filePath); 
     var uploadHack = 
      "(function(){" + 
       "function convert(base64){" + 
        "var raw = atob(base64);" + 
        "var arr = new Uint8Array(new ArrayBuffer(raw.length));" + 
        "for (var i = 0; i < raw.length; i++){" + 
         "arr[i] = raw.charCodeAt(i);" + 
        "}" + 
        "return arr; " + 
       "}" + 
       $"var file = new Blob([convert('{fileContent}')], {{'type':'{contentType}'}}); " + 
       $"file.name = '{fileName}'; " + 
       $"angular.element('#{fileInputId}').scope().{angularScopeVar} = file;" + 
      "})()"; 
     Driver.ExecuteJavaScript(uploadHack); 
     return this; 
    } 
+0

UploadFile這裏基本上是UploadElement.SendKeys(「文件路徑」):)有時候取決於你的情況可能完全沒有必要 –

0

BrowserStack使用Appium在Android和iOS上驅動您的Selenium測試。

由於here,由於Appium目前不支持上傳,BrowserStack也無法支持移動設備上的文件上傳。

+0

謝謝你,至少它現在是明確的,但不是很好的消息 –

相關問題