Как заставить Watir возвращать фактический HTML при перенаправлении сайта? - PullRequest
1 голос
/ 20 октября 2010

Когда я зачитываю HTML-код, возвращенный Watir, он дает мне страницу с указанием вернуться в браузер через мой Mac или ПК.Кажется, меня перенаправляет пользовательский агент, данный через Watir.Я думал, что я за рулем браузера с Watir, но это не так.

ie = Watir::IE.new
ie.goto "http://www.apple.com/safari/download"

ie.checkbox(:name, "21.1.9.12.3.1.3.0").clear

, который возвращает исключение UnkownObjectException.То же самое с попыткой нажать кнопку отправки.

Используя firebug, я могу найти флажок в порядке, вот как я нашел: name.Затем я перенаправил вывод HTML из Watir в файл для проверки:

myfile = File.new("safaridebug.html", "w+")
myfile.puts ie.html
myfile.close

Просматривая safaridebug.html, я заметил, что я был на другой странице из веб-браузера.Есть ли что-то в watir, я могу получить фактический HTML, который присутствует в моем веб-браузере, может быть подделка агента пользователя?Спасибо.

Технические характеристики системы: ВМ под управлением Win XP SP2, ruby ​​1.8.7, IE 8

1 Ответ

5 голосов
/ 20 октября 2010

Watir работает правильно в этом случае. Не существует специального пользовательского агента или чего-либо еще используемого Watir, потому что используется простой старый IE, и его пользовательский агент отправляется самим IE.

Причина, по которой вы не можете найти флажок с помощью Watir или из HTML, состоит в том, что флажок находится во фрейме :) Найдите тег фрейма в этом html, и вы поймете, почему вы не смогли найти его раньше.

Вместо этого вы можете получить к нему доступ из фрейма:

b.frame(:id, "download-frame").checkbox(:name, "21.1.9.12.3.1.3.0").clear

Если при попытке получить доступ к фреймам вы получаете ошибки об отказе в доступе, просто прочитайте инструкцию на http://wiki.openqa.org/display/WTR/Frames

...