Can not use variable in IRB after var = Watir::Browser.start 'url' - ruby

1.9.3-p327 :001 > require 'watir-webdriver'
=> true
1.9.3-p327 :002 > b = Watir::Browser.new
Then firefox starts and I can do nothing. My IRB does not allow me to enter new commands.
Tried different variations of browser initialization:
b = Watir::Browser.new :opera
b = Watir::Browser.new :firefox
b = Watir::Browser.start 'url'
There should appear something like:
=> #<OperaWatir::Browser:0x1496e57 #active_window=#<OperaWatir::Window:0x1eb1db2
#browser=#<OperaWatir::Browser:0x1496e57 ...>>,#driver=#
Java::ComOperaCoreSystems::OperaDriver:0xeabd2f>>
but there is no output in console. After 60 seconds browser closes and I get the following output:
1.9.3-p327 :002 > b = Watir::Browser.new
Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection
in 60 seconds (127.0.0.1:7055)
Tried chrome, firefox, browser opens, but irb locks.
OS:Ubuntu
Ruby: 2.0.0 (also tried on 1.9.3)

Selenium::WebDriver::Error::WebDriverError unable to obtain stable firefox connection
in 60 seconds (127.0.0.1:7055) - this happened generally when your browser version and web-driver version not matched. I personally observed the same. Only solution is to synchronize watir-webdriver and your browser version as documented in their official site.
Here are some Good resources of the fact:
resource1
resource2
resource3
Hope it will help you out.

Related

ruby cucumber tests on multiple browsers

I am using windows 10 32 bit ruby version 233, I am facing these issues with running the tests on a ie 11 browser and the chrome browser for the tests(using page object) that are already running on firefox browser,
ISSUE with IE: Watir::Exception::NoMatchingWindowFoundException:
browser window was closed (eval):1:in `process_watir_call'
ISSUE with Chrome: Errno::ECONNREFUSED: Failed to open TCP connection
to 127.0.0.1:9515 (No connection could be made because the target
machine actively refused it. - connect(2) for "127.0.0.1" port 9515)
i have used the following hooks for ie and chrome:
Before do
case $browser
when 'mozilla'
#browser = Watir::Browser.new :firefox
#browser.window.maximize
when 'chrome'
#browser = Watir::Browser.new :chrome, :profile => "default"
when 'ie'
#browser = Watir::Browser.new :ie
# #browser.window.maximize
# #browser.visible = true
else
#browser = Watir::Browser.new :firefox
#browser.window.maximize
end
# #browser = Watir::Browser.new :firefox
# #browser.window.maximize
# this file contains test data that needs to be changed if tests are being executed in a different environment
$test_data = YAML.load_file('features/support/input_data/data/login_information.yml')
# this file contains base URL that needs to be changed if tests are being executed in a different environment
FigNewton.load('default.yml')
end
I was able to run a small sample test on a separate project from ruby mine with Watir gem.
Is there any way to make it work on the existing firefox tests?
The problem with chrome has been fixed by using the right chromedriver version, but still having problems with the IE using watir.
Found the solution for IE too its something to do with the internet options security and lower down the security level and uncheck the Enable Protected Mode.

Watir WebDriver browser object loses current window upon opening new tab (FIREFOX)

I want to test clicking on multiple links on the same page, but then be able to switch active tabs. However once I click on a link with target=_blank or if I open a new tab on purpose, it routes me to a new tab and I can't get back to the old tab.
Note: I am using Firefox for testing. Chrome does appear to work properly and provides a window count of 2
Here is a simple IRB snippet to show what I mean:
2.2.1 :001 > require 'watir-webdriver'
=> true
2.2.1 :002 > b = Watir::Browser.new :firefox, :profile => 'default'
=> #<Watir::Browser:0x..fa8c7116334ddce82 url="about:blank" title="">
2.2.1 :003 > b.goto 'amazon.com'
=> "http://amazon.com"
2.2.1 :004 > b.a(:class => 'nav-logo-link').click(:command, :shift)
=> nil
2.2.1 :005 > b.windows.count
=> 1
I see two tabs opened, which the (:command, :shift) option is meant to do.. but how do I go back to the first one if the browser object only has 1 window?
It just seems that I can't find anyone having the same problem so perhaps its a firefox issue or my environment maybe?
Running on Mac OSX, FF version 44, Ruby 2.2.1, watir-webdriver 0.9.1
Check this out:
require 'watir-webdriver'
b = Watir::Browser.new
b.goto "amazon.com"
link = b.a(:class => 'nav-logo-link')
b.execute_script("return arguments[0].target = '_blank'", link)
link.click
puts b.windows.count
Main idea is not to try to use a link in a special way to get two windows but modify the link to get two windows in a natural way.

Unable to automate (AutoIT) in Ruby because of Watir error

I've tried a few times now to run a Watir browser and then use the AutoIt ruby library (au3) to access a right click context menu but it wasn't working, turns out the au3 library is disappearing for some reason (I'm a little new to Ruby but when I require it again after the browser opens it comes back false for some reason:
irb(main):001:0> require "au3"
=> true
irb(main):002:0> require "watir-webdriver"
=> true
irb(main):003:0> browser = Watir::Browser.new :chrome
Starting ChromeDriver (v2.3) on port 9515
[4868:5640:1025/104947:ERROR:textfield.h(176)] NOT IMPLEMENTED
=> #<Watir::Browser:0x449008c8 url="about:blank" title="about:blank">
<to "https://github.com/lmmx/watir-paper-scanner/blob/master/bookworm.rb"
[WARNING:..\..\..\..\flash\platform\pepper\pep_module.cpp(63)] SANDBOXED
=> "https://github.com/lmmx/watir-paper-scanner/blob/master/bookworm.rb"
irb(main):005:0> require "au3"
=> false
irb(main):006:0>
I'm guessing that whatever's SANDBOXED is crucial to running au3? The browser still works fine... Will try and update the watir-related things, but I only installed it a week or 2 so it shouldn't be out of date already - anyone help me fix it?
The reason it's returning false is because you have already used
require "au3"
on the top line of your code, so when you require it again it's already there.

Watir-webdriver: Chrome unhandled error on site where IE and Firefox working fine

So I think this might be an error with the ChromeDriver but wanted to ask here first.
I'm having trouble using just about every webdriver function with chrome, yet IE and Firefox is working fine.
The site is www.bing.com's sign in with Windows live site.
https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1314808262&rver=6.0.5286.0&wp=MBI&wreply=http:%2F%2Fwww.bing.com%2FPassport.aspx%3Frequrl%3Dhttp%253a%252f%252fwww.bing.com%252f&lc=1033&id=264960
Once at that site when using chrome the only two functions I can get to work properly are
#browser.title
#browser.html
are the only functions that work properly. When I try
#browser.links.size
#browser.button[0].flash
#browser.button[0].click
I get
Selenium::WebDriver::Error::UnhandledError:
Using :id etc to reference the objects doesn't work either.
However IE and Firefox can interact with the site fine.
If you need code or clarification let me know, but basically I can't get chrome to interact with that log in site. (Other sites work just fine on chrome)
You will need to install the ChomeDriver, which involves downloading the binary and putting it on your PATH. See: http://watirwebdriver.com/chrome/
This site works perfectly for me in Chrome.
Eg.
$irb
ruby-1.9.2-p290 :001 > require 'watir-webdriver'
=> true
ruby-1.9.2-p290 :002 > b = Watir::Browser.new :chrome
=> #<Watir::Browser:0x6c6e06ba1a564e50 url="about:blank" title="about:blank">
ruby-1.9.2-p290 :003 > b.goto "https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1314808262&rver=6.0.5286.0&wp=MBI&wreply=http:%2F%2Fwww.bing.com%2FPassport.aspx%3Frequrl%3Dhttp%253a%252f%252fwww.bing.com%252f&lc=1033&id=264960"
=> "https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1314808262&rver=6.0.5286.0&wp=MBI&wreply=http:%2F%2Fwww.bing.com%2FPassport.aspx%3Frequrl%3Dhttp%253a%252f%252fwww.bing.com%252f&lc=1033&id=264960"
ruby-1.9.2-p290 :004 > b.title
=> "Welcome to Windows Live"
ruby-1.9.2-p290 :005 > b.html
=> "<!-- ServerInfo: BAYIDSLGN1M37 2011.07.22.19.28.58...

Using watir to control multiple firefox instances

I'm using watir in a Windows environment with FireFox 3.6 via FireWatir. I can successfully run a single watir test without issue. I need to be able to either:
a. Create and manage multiple browser instances or tabs from a single test script
or
b. Run two test scripts simultaneously from separate instances of ruby
Currently attempts at both a and b result in both Browser.new commands returning the same browser instance, thus the scripts step all over one-another.
Are either of these scenarios possible? I've seen some posts from 2008/2009 about a multiple browser branch, did this code eventually make it into the general release?
Thanks,
Jeff
I have just tried it with watir-webdriver gem (installation instructions), and it works:
$ irb
>> require "watir-webdriver"
=> true
>> b1 = Watir::Browser.new :ff
=> #<Watir::Browser:0x101574930 url="about:blank" title="">
>> b1.goto "google.com"
=> "http://www.google.hr/"
>> b2 = Watir::Browser.new :ff
=> #<Watir::Browser:0x1023658f0 url="about:blank" title="">
>> b2.goto "yahoo.com"
=> "http://www.yahoo.com/"
Vapir-firefox is a much-improved fork of Firewatir that resolves its issues with handling multiple windows (among many other improvements).
http://vapir.org/

Resources