1

可能重复:
如何使用 Selenium 的 java 接口从站点上传文件

我是 Selenium 的新手。你能告诉我如何使用 Selenium 在 Internet Explorer 中自动上传文件吗?

4

2 回答 2

4

这并不容易,而且有很好的理由——安全也不容易。如果您能够上传这样的内容,是什么阻止了有人使用相同的方法上传您的详细信息?

您也没有给我们提供任何可以使用的示例:

鉴于此示例网页:

<html>
<head>
<style type="text/css">
.fileSave { color: red; }
</style>
</head>
<label for="fileUpload">File location:
<input type="file" id="fileUpload" />
<br>
<br>
<a href="" class="fileSave">Save file</a>
</body>
</html>

我可以在 C# 中做到这一点:

Driver = new ChromeDriver();
var fileUploadControl = Driver.FindElement(By.Id("fileUpload"));
fileUploadControl.SendKeys("C:\File.txt");
var submitLink = Driver.FindElement(By.ClassName("fileSave"));
submitLink.Click();
于 2012-05-23T08:46:16.200 回答
3

这已被多次询问并且也在一些 Selenium 常见问题解答中。

Selenium 2 (WebDriver) Java 示例:

// assuming driver is a healthy WebDriver instance
WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']"));
fileInput.sendKeys("C:/path/to/file.jpg");

对于 Selenium RC,请参阅此问题

这个想法是将文件的绝对路径直接发送到您通常单击以获取模式窗口的元素 - 即<input type='file' />element.

于 2012-05-23T09:36:11.120 回答