2012-04-07 29 views
0

我查看了大量的上傳線索,但無法找到答案。有人可以請幫助。 我有一個瀏覽按鈕,讓我選擇文件從我的電腦上傳到網站。下面是HTML代碼中的瀏覽按鈕是在網站上:如何在Selenium 2.20和Java上上傳文件?

<input id="contentFileInput" width="110" type="file" height="30" name="contentFileInput" style="display: none;"> 
<object id="contentFileInputUploader" width="110" height="30" type="application/x-shockwave-flash" data="../../Scripts/uploadify.swf" style="visibility: visible;"> 
<param name="quality" value="high"> 
<param name="wmode" value="opaque"> 
<param name="allowScriptAccess" value="sameDomain"> 
<param name="flashvars" value="uploadifyID=contentFileInput&pagepath=/Content/&script=/Content/AsyncUpload/&folder=&width=110&height=30&wmode=opaque&method=POST&queueSizeLimit=999&simUploadLimit=1&fileDesc=*.mpeg;*.mpg;*.avi;*.flv;*.mov;*.mp4;*.wmv&fileExt=*.mpeg;*.mpg;*.avi;*.flv;*.mov;*.mp4;*.wmv&auto=true&sizeLimit=1258291200&fileDataName=Filedata"> 
</object> 

我想: WebElement ELEM = driver.findElement(By.xpath( 「// * [@ ID = 'contentFileInputUploader']」 )); elem.sendKeys(「C:///video/file.flv」);

但它沒有做任何事情。當我懸停瀏覽按鈕時,我從ff中的firepath獲得了xpath。有人可以建議我能做些什麼嗎?我很困難。提前致謝。

+0

爲什麼你發送鍵按鈕?上傳文件的流程是什麼?首先你點擊按鈕>標準上傳文件對話框將會出現,然後你點擊確定,文件上傳到你的網站。我對麼? – 2012-04-07 21:15:09

+0

該解決方案由另一個帖子提供。我只是指出它不適用於這種特殊類型的按鈕。你的假設是正確的,但是當出現對話框時,但在這種情況下,click方法甚至不能在這個對象上工作。即使它確實打開了一扇窗戶,那時你也不會有任何控制權。有人有主意嗎? – twsel 2012-04-08 05:38:49

+0

也許你應該玩上面的元素。在selenium IDE中試用它:'type | contentFileInput | C:\\ \\視頻file.flv'。如果它可以工作,那麼你應該使用JavaScript來輸入你的值:'((JavascriptExecutor)driver).executeScript(「arguments [0] .value ='C:\\ video \\ file.flv';」,elem );' – 2012-04-08 12:39:51

回答

相關問題