Skip to content

Commit 00ca43f

Browse files
committed
Default to true when javascriptEnabled capability is not set
Mimics b31dc3f in Ruby so that drivers that don't set javascriptEnabled to true explicitly (e.g. Edge) still can execute scripts. Closes #4651.
1 parent 717d5ef commit 00ca43f

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

rb/lib/selenium/webdriver/remote/capabilities.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ class Capabilities
4848
end
4949
end
5050

51+
#
52+
# Returns javascript_enabled capability.
53+
# It is true if not set explicitly.
54+
#
55+
def javascript_enabled
56+
javascript_enabled = @capabilities.fetch(:javascript_enabled)
57+
javascript_enabled.nil? ? true : javascript_enabled
58+
end
59+
5160
alias_method :css_selectors_enabled?, :css_selectors_enabled
5261
alias_method :javascript_enabled?, :javascript_enabled
5362
alias_method :native_events?, :native_events

rb/spec/unit/selenium/webdriver/remote/capabilities_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ module Remote
9494
expect(capabilities_hash).not_to have_key('proxy')
9595
end
9696

97+
it 'should default to javascript enabled if it is not explicitly defined' do
98+
capabilities = Capabilities.new(javascript_enabled: nil)
99+
expect(capabilities.javascript_enabled).to eq(true)
100+
end
101+
97102
it 'can merge capabilities' do
98103
a = Capabilities.chrome
99104
b = Capabilities.htmlunit

0 commit comments

Comments
 (0)