我查看了大量的上傳線索,但無法找到答案。有人可以請幫助。 我有一個瀏覽按鈕,讓我選擇文件從我的電腦上傳到網站。下面是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。有人可以建議我能做些什麼嗎?我很困難。提前致謝。
爲什麼你發送鍵按鈕?上傳文件的流程是什麼?首先你點擊按鈕>標準上傳文件對話框將會出現,然後你點擊確定,文件上傳到你的網站。我對麼? – 2012-04-07 21:15:09
該解決方案由另一個帖子提供。我只是指出它不適用於這種特殊類型的按鈕。你的假設是正確的,但是當出現對話框時,但在這種情況下,click方法甚至不能在這個對象上工作。即使它確實打開了一扇窗戶,那時你也不會有任何控制權。有人有主意嗎? – twsel 2012-04-08 05:38:49
也許你應該玩上面的元素。在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