Я пытаюсь автоматизировать процесс выбора локального файла с html-страницы с помощью watir-webdriver.
У меня есть следующий html
<body>
<form method="post" action="upload" enctype="multipart/form-data">
test file to upload: <input type="file" name="file" size="60" id="test"/>
<input type="submit" value="Upload" name="upload" id="upload" />
</form>
</body>
Я пытаюсь щелкнуть ввод с помощью id
из test
и установить путь к локальному файлу, который я хочу загрузить, используя watir-webdriver.
Я могу использовать следующее, чтобы нажать кнопку, чтобы открыть окно выбора, используя
@browser.goto 'http://www.test.com'
@browser.button(:id => 'test').click
однако я пытаюсь использовать следующее (из исследований это кажется правильным, но не работает)
@browser.file_field(:name => 'file').set("C:\\path\\to\\test\\file\\validTest.xml")
что приводит к следующей ошибке
Watir::Exception::UnknownObjectException: unable to locate element, using {:name=>"file", :tag_name=>"input", :type=>"file"}
пытающийся
@browser.button(:id => 'test').set("C:\\path\\to\\test\\file\\validTest.xml")
приводит к следующей ошибке
NoMethodError: undefined method `set' for #<Watir::Button:0x3859920>
Кто-нибудь может помочь? Я изо всех сил пытаюсь понять, почему опция file_field
не работает.
UnknownObjectException
, попробуйте@browser.file_field(:name => 'file').exists?
. Еслиfalse
, то возможно, что элемент на самом деле не находится (например, во фрейме, асинхронная загрузка и т. д.). А классButton
не имеет метода.set
, так что ошибка правомерна. - person orde   schedule 19.12.2014