¿Cómo obtener WIN32OLE manejar para IE a través de watir-webdriver?

En Watir, puede obtener el controlador WIN32OLE de la ventana de IE utilizando el siguiente método.

irb(main):059:0> browser.ie => # 

De alguna manera necesito obtener el mismo retorno para IE que fue creado por watir-webdriver.

¿Hay alguna manera? O al menos alguien me puede indicar la dirección para cavar.

Necesito estas cosas para adjuntar el complemento HTTPwatch a mi instancia del navegador. Aquí hay un ejemplo de código HTTPWatch.

 require 'watir' require 'win32ole' browser = Watir::Browser.new controller = WIN32OLE.new('HttpWatch.Controller') plugin = controller.IE.Attach(browser.ie) 

UPD: Gracias a Justin Ko tengo código de trabajo

 require 'win32ole' require 'watir-webdriver' browser = Watir::Browser.new :ie title = browser.title browser.goto "google.com" length = WIN32OLE.new('Shell.Application').Windows.count - 1 (0..length).each do |i| begin WIN32OLE.new('Shell.Application').Windows(i).Document.Title $ie = WIN32OLE.new('Shell.Application').Windows(i) rescue end end controller = WIN32OLE.new('HttpWatch.Controller') plugin = controller.IE.Attach($ie) 

Puede intentar usar el WIN32OLE para adjuntarlo a la instancia en ejecución de IE. Esto fue discutido en el blog de Ruby en Windows – vea aquí .

Creo que el código que necesitarías es:

 require 'win32ole' require 'watir-webdriver' browser = Watir::Browser.new :ie title = browser.title for window in WIN32OLE.new('Shell.Application').Windows begin if window.Document.Title == title ie = window end rescue end end controller = WIN32OLE.new('HttpWatch.Controller') plugin = controller.IE.Attach(ie) 

No tengo HttpWatch, así que no pude probarlo. Sin embargo, el tipo de win32ole parece ser el mismo que el devuelto por el browser.ie () de Watir.

Tenga en cuenta que esta solución supone que el navegador tiene un título único. Si esta suposición no es válida, puedo escribir algunas soluciones alternativas.

Intereting Posts