class PhantomRubyBrowser

Attributes

location[R]
phantomjs[R]

Public Class Methods

new(location) click to toggle source
# File lib/phantom_ruby_browser.rb, line 8
def initialize(location)
  @location = location
  @phantomjs = Phantomjs
end

Public Instance Methods

content() click to toggle source
# File lib/phantom_ruby_browser.rb, line 13
def content
  execute "var page = require('webpage').create();
  page.open('#{@location}', function() {
    setTimeout(function(){var js = page.evaluate(function () {
      return document;
    });
    console.log(js.all[0].outerHTML);
    phantom.exit();}, 1000);
  });"
end
content_after_click(link_selector = 'a') click to toggle source
# File lib/phantom_ruby_browser.rb, line 24
def content_after_click(link_selector = 'a')
  execute "var page = require('webpage').create();
  page.open('#{@location}', function() {
    var coords = page.evaluate(function(){
      return document.querySelector('#{link_selector}').getBoundingClientRect();
    });
    page.sendEvent('click', coords.left, coords.top);
    var js = page.evaluate(function () {
      return document;
    });
    console.log(js.all[0].outerHTML);
    phantom.exit();
  });"
end

Private Instance Methods

execute(commands) click to toggle source
# File lib/phantom_ruby_browser.rb, line 41
def execute(commands)
  result = ""
  steps_file = Tempfile.new('prb_steps')
  begin
    steps_file.write(commands)
    steps_file.flush
    result = @phantomjs.run(steps_file.path)
  ensure
    steps_file.close
    steps_file.unlink
  end
  result
end
prepare_steps() click to toggle source
# File lib/phantom_ruby_browser.rb, line 55
def prepare_steps

end