0

我浏览了大量的上传线程,但无法找到答案。有人可以帮忙吗。我有一个浏览按钮,可以让我选择要从我的电脑上传到网站的文件。这是网站上浏览按钮所在的 html 代码:

<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。有人可以建议我能做什么吗?我真的被困住了。提前致谢。

4

1 回答 1

0

您必须在文件输入上使用 sendKeys(),而不是在按钮上。在示例 html 中,您应该使用:

findElement(By.id("contentFileInput"))

代替

findElement(By.xpath("//*[@id='contentFileInputUploader']"))

如果问题仍然存在,您应该在这里查看:

http://saucelabs.com/blog/index.php/2012/03/selenium-tips-uploading-files-in-remote-webdriver

于 2012-05-17T14:55:56.263 回答