user1405338
user1405338

Reputation: 189

watir webdriver browsermob/proxy har file almost empty

Hello I want to catch all redirects when they happend. Lets say first it goes to example.com then it redirect to example1.com and after that example3.com

I'm using watir webdriver and browsermob/proxy. I tried with google.com, that doesnt redirect, but the har file should be much more then what I get.

hier is the code:

server = BrowserMob::Proxy::Server.new("/home/da/Downloads/browsermob-proxy-2.0.0/bin/browsermob-proxy") #=> #<BrowserMob::Proxy::Server:0x000001022c6ea8 ...>
        server.start
  @@proxy = server.create_proxy(9090)
        puts @@proxy.inspect
  profile = Selenium::WebDriver::Firefox::Profile.new
        puts "going on #{dv}"
  profile['general.useragent.override'] = dv['useragent']
        #'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Firefox/27.0'#device['useragent']
  puts dv['useragent']
  profile.proxy = Selenium::WebDriver::Proxy.new :http => 'localhost:9090', :ssl => 'localhost:9090'#9091
  time = Time.now.to_i #Time.now.getutc
  puts APP_ROOT
  @@proxy.new_har time
  @@b = Watir::Browser.new :firefox, :profile => profile
        @@har = @@proxy.har #=> #<HAR::Archive:0x-27066c42d7e75fa6>
        #har.entries.first.request.url
        #har.entries.first.request.url #=> "http://google.com"
        @@b.goto "google.com"
        puts @@har.inspect
        @@har.save_to "#{APP_ROOT}/har/google.har"
        exit

and this is what I get

{"log":{"version":"1.2","creator":{"name":"BrowserMob Proxy","version":"2.0","comment":""},"browser":{"name":"IE","version":"11.0","comment":""},"pages":[{"id":"1479767515","startedDateTime":"2016-11-21T23:31:56.561+01:00","title":"","pageTimings":{"comment":""},"comment":""}],"entries":[{"pageref":"1479767515","startedDateTime":"2016-11-21T23:32:02.146+01:00","request":{"method":"GET","url":"https://tiles.services.mozilla.com/v3/links/fetch/en-US/release","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[],"headersSize":370,"bodySize":0,"comment":""},"response":{"status":303,"statusText":"SEE OTHER","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":0,"mimeType":"text/html; charset=utf-8","comment":""},"redirectURL":"","headersSize":266,"bodySize":0,"comment":""},"cache":{},"timings":{"blocked":101,"dns":266,"connect":238,"send":1,"wait":205,"receive":832,"ssl":0,"comment":""},"serverIPAddress":"52.32.150.180","comment":"","time":1643},{"pageref":"1479767515","startedDateTime":"2016-11-21T23:32:02.791+01:00","request":{"method":"POST","url":"https://location.services.mozilla.com/v1/country?key=7e40f68c-7938-4c5d-9f95-e61647c213eb","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"key","value":"7e40f68c-7938-4c5d-9f95-e61647c213eb"}],"headersSize":419,"bodySize":2,"comment":""},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":49,"mimeType":"application/json; charset=UTF-8","comment":""},"redirectURL":"","headersSize":227,"bodySize":49,"comment":""},"cache":{},"timings":{"blocked":0,"dns":9,"connect":45,"send":17,"wait":60,"receive":511,"ssl":0,"comment":""},"serverIPAddress":"52.19.86.22","comment":"","time":642}],"comment":""}}

I tried with redirects like mentioned above example1.com to exmple2.com and har file is not giving much :(

HERE are some tests I preformed:

ok here some tests results: firefox 49 2.0.0 don't work at all firefox 49 2.1.2 don't work at all firefox 48 2.1.2 don't work at all

firefox 47 2.1.2 works but har is small firefox 47 2.0.0 works har file is bigger firefox 47 2.1.0 works har is middle big firefox 47 2.1.1 works and it is biggest

Then I tested also with firefox 46 and got same results....

I remember a couple years ago I got also the redirects with same codes and now can get it :(

Upvotes: 1

Views: 542

Answers (1)

Robbie Wareham
Robbie Wareham

Reputation: 3428

Have you tried creating the WebDriver::Proxy via Browsermob.

e.g.

profile.proxy = @@proxy.selenium_proxy :http, :ssl

Also, BrowsermobProxy itself normally runs on 9090, so I would have expected a port clash when you tried to create a proxy on 9090. If you use the above code, you don't need to specify a port.

e.g.

@@proxy = server.create_proxy

Upvotes: 1

Related Questions