J'ai essayé de créer un script simple dans FireWatir qui convertira l'intégralité du DOM du document courant (y compris le code généré par javascript) en représentation XML.comment puis-je vider une page html en XML avec watir & JavaScript?
suivantes leads sur le web j'ai venu avec ce script
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)")
cependant en cours d'exécution dans Firefox 3.6, ont donné lieu à cette erreur:
c:/Ruby192/lib/ruby / gemmes/1.9.1/gemmes/firewatir-1.9.2/lib/firewatir/jssh_socket.rb : 19: dans 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 'de test.rb: 9: dans `'
si j'entre cette ligne:
javascript:window.open('aout:blank').document.write('<pre>' + unescape((new XMLSerializer()).serializeToString(document).replace(/</g, '<')) + '</pre>')
dans la zone d'emplacement FF, je reçois une page avec le XML souhaité. donc XMLSerializer doit être défini quelque part, c'est juste hors de la portée de mon code JS.
comment puis-je faire fonctionner ça?
Yap ne signifie la barre d'adresse, et je l'ai essayez cette approche, mais cela mène à un onglet de chargement sans fin dans firefox jusqu'à ce que watir abandonne et a jeté une exception de délai d'expiration. Ce que je ne comprends pas, c'est pourquoi je ne peux pas accéder à l'objet XMLSerilizer à partir du code, il est clair que FF le sait! – Sam