Я пытался создать простой сценарий в FireWatir, который преобразует весь DOM текущего документа (включая сгенерированный javascript код) в представление XML.
Следуя указаниям в Интернете, я пришел с этимСценарий
require 'rubygems'
require 'firewatir'
browser = Watir::Browser.new
browser.goto('http://www.google.com/')
browser.text_field(:id, 'lst-ib').set('hello')
browser.button(:name, 'btnG').click
puts browser.execute_script("new XMLSerializer().serializeToString(document)")
, однако, запуск его в Firefox 3.6 привел к этой ошибке:
c: /Ruby192/lib/ruby/gems/1.9.1/gems/firewatir-1.9.2 / lib / firewatir / jssh_socket.rb: 19: в js_eval': XMLSerializer is not defined (JsshSocket::JSReferenceError)
from c:/Ruby192/lib/ruby/gems/1.9.1/gems/firewatir-1.9.2/lib/firewatir/firefox.rb:136:in
execute_script 'из test.rb: 9: в `'
, если я введу эту строку:
<code>javascript:window.open('aout:blank').document.write('<pre>' + unescape((new XMLSerializer()).serializeToString(document).replace(/</g, '<')) + '
')
в поле местоположения FF, я получаю страницу с желаемым XML.поэтому XMLSerializer должен быть где-то определен, его JS-код кажется просто недосягаемым.
как мне заставить это работать?