2012-05-23 4 views

ответ

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(); 
+0

«Если вы можете загрузить что-то вроде этого, что заставляет кого-то загружать ваши данные, используя тот же метод?» В какой-то степени CAPTCHA будет. – fixxxer

3

Это было спросил several times, а также в некоторых вопросах 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 см this question.

Идея состоит в том, чтобы напрямую отправить абсолютный путь к файлу элементу, который вы обычно нажимаете, чтобы получить модальное окно - это элемент <input type='file' />.

Смежные вопросы