Загрузка файла WatiN - PullRequest
2 голосов
/ 18 июня 2010

Я наткнулся на препятствие. Я пытаюсь использовать WatiN для загрузки файла. Я могу загрузить окно загрузки, но оно быстро исчезает. Последняя строка моего кода на данный момент:

ie.FileUpload(Find.ById("profile_file")).Click();

Загружает диалоговое окно для выбора изображения, но исчезает. Можно ли автоматически установить путь к коробке, например, загрузить «C: /Desktop/image.jpg»?

Кроме того, можно ли дождаться завершения загрузки, прежде чем продолжить?

Помощь очень ценится.

Спасибо.

Ответы [ 4 ]

1 голос
/ 15 июня 2016

Это на 6 лет позже, но если кто-то еще (как я) все еще испытывает проблемы с этим, вот решение.

Чтобы заполнить диалог файла, попробуйте это:

ie.FileUpload(Find.ById("profile_file")).Set("filename.txt");

Это автоматически выведет диалоговое окно файла. Затем вы увидите, что текст автоматически вводится в текстовое поле выбора файла.

Нет необходимости в отправке ключей.

0 голосов
/ 05 августа 2010

почему вам нужно выбрать из диалогового окна .. Попробуйте просто отправить текст:

ie.FileUpload(Find.ById("profile_file")).Text = "C:/Desktop/image.jpg";
0 голосов
/ 20 марта 2012

В качестве меры безопасности браузеры не позволяют сценариям устанавливать значение для ввода файла. Представьте, что если бы они это сделали, я мог бы разместить скрытый файл на моей странице, где у меня есть контактная форма.и установите его значение в c: \ topsecretinfo.txt без разрешения пользователя.затем, когда пользователь отправит форму, вуаля, у меня будет его совершенно секретная информация.

По счастливой случайности я столкнулся с этой проблемой сегодня, и вот что я сделал, чтобы обойти ее:

  • создал новое скрытое поле на странице под названием «testupload».
  • использовал Watin, чтобы установить значение этого скрытого поля для пути к моему тестовому файлу
  • вна сервере, я проверяю это поле и, если оно существует, вместо чтения опубликованного файла я читаю этот файл с локального компьютера.
0 голосов
/ 18 июня 2010

Хотя это не ответит на ваш вопрос напрямую, я подозреваю, что DialogWatcher автоматически отменяет диалог.

...