File tree Expand file tree Collapse file tree 3 files changed +26
-24
lines changed Expand file tree Collapse file tree 3 files changed +26
-24
lines changed Original file line number Diff line number Diff line change @@ -124,6 +124,7 @@ browser.mouse
124
124
browser.quit
125
125
```
126
126
127
+
127
128
## Docker
128
129
129
130
In docker as root you must pass the no-sandbox browser option:
@@ -739,6 +740,20 @@ simple value.
739
740
browser.execute(%( 1 + 1) ) # => true
740
741
```
741
742
743
+ #### evaluate_on_new_document(expression)
744
+
745
+ Evaluate JavaScript to modify things before a page load
746
+
747
+ * expression ` String ` should be valid JavaScript
748
+
749
+ ``` ruby
750
+ browser.evaluate_on_new_document <<~JS
751
+ Object .defineProperty (navigator , " languages" , {
752
+ get : function () { return [" tlh" ]; }
753
+ });
754
+ JS
755
+ ```
756
+
742
757
#### add_script_tag(\*\* options) : ` Boolean `
743
758
744
759
* options ` Hash `
@@ -774,18 +789,6 @@ browser.add_script_tag(content: "window.__injected = 42")
774
789
browser.evaluate(" window.__injected" ) # => 42
775
790
```
776
791
777
- #### evaluate_on_new_document(javascript)
778
-
779
- Evaluate JavaScript to modify things before a page load:
780
-
781
- ``` ruby
782
- javascript = <<~JS
783
- Object .defineProperty (navigator , ' languages' , {
784
- get : function () { return [' tlh' ]; }
785
- });
786
- JS
787
- browser.evaluate_on_new_document javascript
788
- ```
789
792
790
793
## Frames
791
794
Original file line number Diff line number Diff line change @@ -77,8 +77,8 @@ def extensions
77
77
end
78
78
end
79
79
80
- def evaluate_on_new_document ( javascript )
81
- extensions << javascript
80
+ def evaluate_on_new_document ( expression )
81
+ extensions << expression
82
82
end
83
83
84
84
def timeout
Original file line number Diff line number Diff line change @@ -206,20 +206,19 @@ module Ferrum
206
206
end
207
207
end
208
208
209
- it ' supports user Javascript' do
209
+ it " supports evaluation of JavaScript before page loads" do
210
210
begin
211
- javascript = <<~JS
212
- Object.defineProperty(navigator, 'languages', {
213
- get: function() { return ['tlh']; }
211
+ browser = Browser . new ( base_url : base_url )
212
+
213
+ browser . evaluate_on_new_document <<~JS
214
+ Object.defineProperty(navigator, "languages", {
215
+ get: function() { return ["tlh"]; }
214
216
});
215
217
JS
216
218
217
- browser = Browser . new . tap { |b | b . evaluate_on_new_document ( javascript ) }
218
- browser . go_to ( base_url ( '/ferrum/with_user_js' ) )
219
-
220
- browser_language = browser . evaluate ( 'document.getElementById("browser-languages").innerHTML' )
221
-
222
- expect ( browser_language ) . to eq ( 'tlh' )
219
+ browser . go_to ( "/ferrum/with_user_js" )
220
+ language = browser . at_xpath ( "//*[@id='browser-languages']/text()" ) . text
221
+ expect ( language ) . to eq ( "tlh" )
223
222
ensure
224
223
browser &.quit
225
224
end
You can’t perform that action at this time.
0 commit comments