Optional hash option in Ruby class
up vote
-1
down vote
favorite
I'm trying to configure a driver with Capybara where an options hash is only used via an environment variable.
Capybara.register_driver :chrome do |app|
opts = Selenium::WebDriver::Chrome::Options.new
opts.add_argument '--start-maximized'
opts.add_argument '--disable-infobars'
opts.add_argument '--headless' if ENV['headless']
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: opts,
desired_capabilities: caps
)
end
Capybara.app_host = location
Capybara.default_driver = :chrome
end
This is the line I'm working on:
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
I know this is invalid syntax but is there a way I can achieve what it is I am trying to do here? browserName
needs to only be invoked if the ENV[extra_args']
is set.
ruby cucumber capybara
add a comment |
up vote
-1
down vote
favorite
I'm trying to configure a driver with Capybara where an options hash is only used via an environment variable.
Capybara.register_driver :chrome do |app|
opts = Selenium::WebDriver::Chrome::Options.new
opts.add_argument '--start-maximized'
opts.add_argument '--disable-infobars'
opts.add_argument '--headless' if ENV['headless']
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: opts,
desired_capabilities: caps
)
end
Capybara.app_host = location
Capybara.default_driver = :chrome
end
This is the line I'm working on:
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
I know this is invalid syntax but is there a way I can achieve what it is I am trying to do here? browserName
needs to only be invoked if the ENV[extra_args']
is set.
ruby cucumber capybara
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I'm trying to configure a driver with Capybara where an options hash is only used via an environment variable.
Capybara.register_driver :chrome do |app|
opts = Selenium::WebDriver::Chrome::Options.new
opts.add_argument '--start-maximized'
opts.add_argument '--disable-infobars'
opts.add_argument '--headless' if ENV['headless']
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: opts,
desired_capabilities: caps
)
end
Capybara.app_host = location
Capybara.default_driver = :chrome
end
This is the line I'm working on:
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
I know this is invalid syntax but is there a way I can achieve what it is I am trying to do here? browserName
needs to only be invoked if the ENV[extra_args']
is set.
ruby cucumber capybara
I'm trying to configure a driver with Capybara where an options hash is only used via an environment variable.
Capybara.register_driver :chrome do |app|
opts = Selenium::WebDriver::Chrome::Options.new
opts.add_argument '--start-maximized'
opts.add_argument '--disable-infobars'
opts.add_argument '--headless' if ENV['headless']
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: opts,
desired_capabilities: caps
)
end
Capybara.app_host = location
Capybara.default_driver = :chrome
end
This is the line I'm working on:
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy, browserName: 'chrome' if ENV['extra_args])
I know this is invalid syntax but is there a way I can achieve what it is I am trying to do here? browserName
needs to only be invoked if the ENV[extra_args']
is set.
ruby cucumber capybara
ruby cucumber capybara
asked Nov 19 at 9:51
Tom
3621418
3621418
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
accepted
You can set any of the Capabilities
keys via #=
, with the key in snake case so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps['browser_name'] = 'chrome' if ENV['extra_args']
...
would work but there's also a browser_name=
method on Capabilities
so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps.browser_name = 'chrome' if ENV['extra_args']
...
probably makes more sense
This works perfectly, thank you
– Tom
Nov 19 at 13:19
add a comment |
up vote
0
down vote
You can do following:
options = {accept_insecure_certs: true, proxy: proxy}
options.merge!({browserName: 'chrome'}) if ENV['extra_args]
caps = Selenium::WebDriver::Remote::Capabilities.new(options)
Let me know if it helps!
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You can set any of the Capabilities
keys via #=
, with the key in snake case so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps['browser_name'] = 'chrome' if ENV['extra_args']
...
would work but there's also a browser_name=
method on Capabilities
so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps.browser_name = 'chrome' if ENV['extra_args']
...
probably makes more sense
This works perfectly, thank you
– Tom
Nov 19 at 13:19
add a comment |
up vote
1
down vote
accepted
You can set any of the Capabilities
keys via #=
, with the key in snake case so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps['browser_name'] = 'chrome' if ENV['extra_args']
...
would work but there's also a browser_name=
method on Capabilities
so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps.browser_name = 'chrome' if ENV['extra_args']
...
probably makes more sense
This works perfectly, thank you
– Tom
Nov 19 at 13:19
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You can set any of the Capabilities
keys via #=
, with the key in snake case so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps['browser_name'] = 'chrome' if ENV['extra_args']
...
would work but there's also a browser_name=
method on Capabilities
so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps.browser_name = 'chrome' if ENV['extra_args']
...
probably makes more sense
You can set any of the Capabilities
keys via #=
, with the key in snake case so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps['browser_name'] = 'chrome' if ENV['extra_args']
...
would work but there's also a browser_name=
method on Capabilities
so
...
caps = Selenium::WebDriver::Remote::Capabilities.new(accept_insecure_certs: true, proxy: proxy)
caps.browser_name = 'chrome' if ENV['extra_args']
...
probably makes more sense
answered Nov 19 at 11:21
Thomas Walpole
29.4k32546
29.4k32546
This works perfectly, thank you
– Tom
Nov 19 at 13:19
add a comment |
This works perfectly, thank you
– Tom
Nov 19 at 13:19
This works perfectly, thank you
– Tom
Nov 19 at 13:19
This works perfectly, thank you
– Tom
Nov 19 at 13:19
add a comment |
up vote
0
down vote
You can do following:
options = {accept_insecure_certs: true, proxy: proxy}
options.merge!({browserName: 'chrome'}) if ENV['extra_args]
caps = Selenium::WebDriver::Remote::Capabilities.new(options)
Let me know if it helps!
add a comment |
up vote
0
down vote
You can do following:
options = {accept_insecure_certs: true, proxy: proxy}
options.merge!({browserName: 'chrome'}) if ENV['extra_args]
caps = Selenium::WebDriver::Remote::Capabilities.new(options)
Let me know if it helps!
add a comment |
up vote
0
down vote
up vote
0
down vote
You can do following:
options = {accept_insecure_certs: true, proxy: proxy}
options.merge!({browserName: 'chrome'}) if ENV['extra_args]
caps = Selenium::WebDriver::Remote::Capabilities.new(options)
Let me know if it helps!
You can do following:
options = {accept_insecure_certs: true, proxy: proxy}
options.merge!({browserName: 'chrome'}) if ENV['extra_args]
caps = Selenium::WebDriver::Remote::Capabilities.new(options)
Let me know if it helps!
answered Nov 19 at 10:56
eurodo061
714
714
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372034%2foptional-hash-option-in-ruby-class%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown