Module: Crabfarm::Utils::Webdriver

Extended by:
Webdriver
Included in:
Webdriver
Defined in:
lib/crabfarm/utils/webdriver.rb

Instance Method Summary collapse

Instance Method Details

#inject_script(_driver, _path) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/crabfarm/utils/webdriver.rb', line 6

def inject_script(_driver, _path)
  _driver.execute_script("
    (function() {
      var script = document.createElement('script');
      script.async = false;
      script.src = '#{_path}';
      document.head.appendChild(script);
    })();
  ")
end

#inject_style(_driver, _path) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/crabfarm/utils/webdriver.rb', line 17

def inject_style(_driver, _path)
  _driver.execute_script("
    (function() {
      var link  = document.createElement('link');
      link.setAttribute('rel','stylesheet');
      link.setAttribute('type','text/css');
      link.setAttribute('href','#{_path}');
      link.setAttribute('media','all');
      document.head.appendChild(link);
    })();
  ")
end

#set_style(_elements, _style) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/crabfarm/utils/webdriver.rb', line 30

def set_style(_elements, _style)
  return if _elements.size == 0
  # Not sure about using a bridge method directly here...
  _elements.first.send(:bridge).executeScript("
    for(var i = 0, l = arguments[0].length; i < l; i++) {
      arguments[0][i].setAttribute('style', arguments[1]);
    }
  ", _elements, _style)
end