How to use same browser window for automated test using selenium-webdriver (ruby)?
The Before
hook is run before each scenario. This is why a new browser is opened each time.
Do the following instead (in the env.rb):
require "selenium-webdriver"
driver = Selenium::WebDriver.for :ie
accept_next_alert = true
driver.manage.timeouts.implicit_wait = 30
driver.manage.timeouts.script_timeout = 30
verification_errors = []
Before do
@driver = driver
end
at_exit do
driver.close
end
In this case, a browser will be opened at the start (before any tests). Then each test will grab that browser and continue using it.
Note: While it is usually okay to re-use the browser across tests. You should be careful about tests that need to be run in a specific order (ie become dependent). Dependent tests can be hard to debug and maintain.
Selenium WebDriver in Ruby: Preventing the test from closing the browser window at end
You can use the :desired_capabilities
to set this flag:
caps = Selenium::WebDriver::Remote::Capabilities.chrome("goog:chromeOptions" => {detach: true})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Note that old examples will be using "chromeOptions", but for newer Chrome versions, it will need to be "goog:chromeOptions".
Ruby Selenium Automated Test Alert Window
This is the code to click okay button in the alert
driver.switch_to.alert.accept
This code is to dismiss the alert
driver.switch_to.alert.dismiss
My advice is to use WATIR if you are ready to use Ruby Selenium Binding, WATIR is the nice wrapper which sits on the top of Ruby selenium binding. There are many usual errors like Element not visible, Stale element error wouldn't even arise in WATIR, WATIR has the way to rescue all these errors for the specified time. So Use WATIR if you are ready to use Ruby Selenium Binding.
In WATIR, you could accept the alert by the following code
b.alert.ok
To dismiss the alert
b.alert.close
Use same browser for multiple test cases Katalon Studio
By default Katalon Studio will close the session after each testcase because it is a good practice of doing Web UI test. However, users has the right to manage the behavior themselves. You can uncheck the Terminate browser at "Preferences -> Katalon -> Execution".
Selenium-Cucumber Opening too many windows
In order to avoid multiple window, you should edit the prefs.json of yout firefox webdriver
You should find the file here :
/usr/lib64/ruby/gems/1.9.1/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/extension/prefs.json
You need to edit the line with:
"browser.link.open_newwindow": 2
replace by the value 1,2, or 3, depending on what you want : http://kb.mozillazine.org/Browser.link.open_newwindow
All profile options defined in this file cannot be overwritten, you must edit this file.
Can Selenium interact with an existing browser session?
This is a pretty old feature request: Allow webdriver to attach to a running browser . So it's officially not supported.
However, there is some working code which claims to support this: https://web.archive.org/web/20171214043703/http://tarunlalwani.com/post/reusing-existing-browser-session-selenium-java/.
Selenium RC: Run tests in multiple browsers automatically
Did you try Selenium Grid? I think it creates pretty good summary report which shows details you need. I may be wrong, as I didn't use it for quite a while.
Is there any way to attach an already running browser to selenium webdriver in java?
I am actually not entirely sure you can switch to a window not spawned by the driver. I think the people working on the selenium 2 project have worked a little bit on switching to a window spawned by a different driver. When you do:
driver.getWindowHandles()
All you get are the windows spawned by the driver object it is called on.
This is a pretty old feature request: Allow webdriver to attach to a running browser . So it's not possible right now.
Related Topics
What Are the Ruby Win32API Parameters | How to Pass a Null Pointer
How to Store Nil User's Goal in a Session
Ignoring a Character Along with Word Boundary in Regex
How to Declare 8-Bit Unsigned Integer in Ruby
Sorting an Array in Ruby Without Using Sort Method
New to Ruby - While Loop Issues in Irb
How to Determine If a String Is Numeric
How to Use Views and Layouts with Ruby and Erb (Not Rails)
How Does Inheritance Work in Ruby
Result of 'Rake Routes' in Ruby Script
Ruby Interactive Shell Commands
Can "Gem Install" Be Configured to Install Executables Outside /Usr/Bin/ by Default
Ruby If VS End of the Line If Behave Differently
How to Read Only X Number of Bytes of the Body Using Net::Http
How to Render a PDF in the Browser That Is Retrieve via Rails Controller
Ruby Attr_Accessor VS. Getter/Setter Benchmark: Why Is Accessor Faster