Jul
28
2008
3

Q. How do I gem install Watir behind a proxy server?

A. Set an environment variable for your proxy from the command line …

set HTTP_PROXY=http://my.work.proxy:8080
gem install watir
Written by Tim Koopmans in: watir | Tags:
Jul
28
2008
0

Q. How do I require all ruby files in the current directory?

A. Iterate over the directory using the File class …
Example watir:

dir = File.dirname(__FILE__)
 Dir[File.expand_path("#{dir}/*.rb")].uniq.each do |file|
  require file
 end
Written by Tim Koopmans in: watir | Tags: ,
Jul
28
2008
0

Q. How do I close all other browsers except my current process?

A. Use .close_others method …
Example watir:

@b.close_others
Written by Tim Koopmans in: watir | Tags:
Jul
28
2008
0

Q. How do I detect if Internet Explorer is already running inside a watir script?

A. Use %x{} to run a sub process that calls tasklist.exe …
Example watir:

if %x[tasklist /FI "IMAGENAME eq IEXPLORE.EXE" /NH] =~ /IEXPLORE/ then
  puts "browser IS running"
else
  puts "no browsers running"
end
Written by Tim Koopmans in: watir | Tags:
Jul
25
2008
0

Q. How do I find the selected element in a combo box?

A. Use the select_list comand in conjunction with the getSelectedItems command
Example html:

<select name="watirCombo">
     <option value="0" selected>(please select:)</option>
     <option value="1">Option 1</option>
     <option value="2">Option 2</option>
     <option value="3">Option 3</option>
     <option value="other">Other</option>
</select>

Example watir:

 @b.goto('http://justaddwatir.com/watir/test_html/tc_0001_0100/test_0021.html')
 combo_items = @b.select_list(:name, "watirCombo").getSelectedItems
 puts combo_items
Written by Sameh Abdelhamid in: watir | Tags:
Jul
25
2008
0

Q. How do I scroll the Internet Explorer page down?

A. Use the document.scrollintoview command.
Example html:

<p> 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod  incidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis  ostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis  utem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit  raesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum. Defacto lingo est igpay atinlay. Marquee selectus non provisio incongruous feline nolo contendre. Gratuitous octopus niacin, sodium glutimate. Quote meon an estimate et non interruptus stadium. Sic tempus fugit esperanto hiccup estrogen. Glorious baklava ex librus hup hey ad infinitum. Non sequitur condominium facile et geranium incognito. Epsum factorial non deposit quid pro quo hic escorol. Marquee selectus non provisio incongruous feline nolo contendre Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum.
Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilita; de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles.
Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum. Defacto lingo est igpay atinlay. Marquee selectus non provisio incongruous feline nolo contendre. Gratuitous octopus niacin, sodium glutimate. Quote meon an estimate et non interruptus stadium. Sic tempus fugit esperanto hiccup estrogen. Glorious baklava ex librus hup hey ad infinitum. Non sequitur condominium facile et geranium incognito. Epsum factorial non deposit quid pro quo hic escorol. Marquee selectus non provisio incongruous feline nolo contendre Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum.
Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilita; de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles.
Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franc va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es.
</p>																								
	<a href="http://justaddwatir.com/">justaddwatir</a><br />

Example watir:

@b.goto('http://justaddwatir.com/watir/test_html/tc_0001_0100/test_0020.html')
@b.link(:text, 'justaddwatir').document.scrollintoview

In this example we are scrolling down to the link which is displayed as “justaddwatir”.

Written by Sameh Abdelhamid in: watir | Tags:
Jul
24
2008
0

Q. How do I add a generic script timeout?

A. Use the Timeout class …
Example watir:

Timeout::timeout(10)do
  begin
      @b.goto(url)
  rescue Timeout::Error
      puts 'Page took longer than 10 seconds to load'
  end
end
Written by Tim Koopmans in: watir | Tags:
Jul
24
2008
0

Q. What’s with the /i in Ruby regular expressions?

A. the /i indicates an ignore case modifier …
In Ruby, a regular expression is written in the form of /pattern/modifiers where “pattern” is the regular expression itself, and “modifiers” are a series of characters indicating various options.
Ruby supports the following modifiers:
* /i makes the regex match case insensitive.
* /m makes the dot match newlines. Ruby indeed uses /m, whereas Perl and
many other programming languages use /s for “dot matches newlines”.
* /x tells Ruby to ignore whitespace between regex tokens.
* /o causes any #{…} substitutions in a particular regex literal to be performed just once, the first time it is evaluated. Otherwise, the substitutions will be performed every time the literal generates a Regexp object.
You can combine multiple modifiers by stringing them together as in /regex/is.
See more information here: http://www.regular-expressions.info/ruby.html

Written by Tim Koopmans in: watir | Tags:
Jul
24
2008
0

Q. How do I display the inner text of a DIV tag?

A. Use the .innerText method …
Example html:

<div class="UserServiceValues">
  Apples  
</div>
<div class="UserServiceValues">
  Oranges 
</div>
<div class="UserServiceValues">
  Bananas
</div>

Example watir:

@b.elements_by_xpath("//div[@class='UserServiceValues']").each  do |elem|
  puts elem.innerText
end
Written by Tim Koopmans in: watir | Tags:
Jul
22
2008
0

Q. How do I terminate a browser using a pid?

A. Get a window handle and close the pid using the Win32API …
Example watir:

hWnd ||= Watir::IE::Process.process_id_from_hwnd @b.hwnd
pid=" " * 32
thread=Win32API.new("user32", "GetWindowThreadProcessId", 'IP', 'I').Call(hWnd,pid)
puts pid.unpack("L")[0]    
right_to_terminate_process = 1
handle = Win32API.new('kernel32.dll', 'OpenProcess', 'lil', 'l').
call(right_to_terminate_process, 0, hWnd)
Win32API.new('kernel32.dll', 'TerminateProcess', 'll', 'l').call(handle, 0)
Written by Tim Koopmans in: watir | Tags:
Jul
22
2008
0

Q. How do I close all running browsers?

A. The Watir::IE class has a close all method …
Example watir:

Watir::IE.close_all()
Written by Tim Koopmans in: watir |
Jul
22
2008
0

Q. How do I check for running browsers?

A. Wrap script execution in a batch file …
Example batch:

:Check for running processes
FOR /F "tokens=1" %%G IN ('tasklist /FI "IMAGENAME eq ruby.exe" /NH') DO (
IF "%%G"=="ruby.exe" exit 100
)
FOR /F "tokens=1" %%G IN ('tasklist /FI "IMAGENAME eq IEXPLORE.EXE" /NH') DO (
IF "%%G"=="IEXPLORE.EXE" exit 100
)
:Execute script
ruby test_suite.rb
SET STATUS=%ERRORLEVEL%
:Clean up zombies
taskkill /F /FI "USERNAME eq SYSTEM" /IM IEXPLORE.EXE
taskkill /F /FI "USERNAME eq SYSTEM" /IM ruby.exe
exit %STATUS%
Written by Tim Koopmans in: watir | Tags:
Jul
17
2008
0

Q. How do I get text from a browser?

A. Use a regex match on the .text method …
Example html:

<p>
  The Employee Code assigned is 10000671
</p>

Example watir:

puts /(1\d+)/.match(@b.text)
Written by Sameh Abdelhamid in: watir | Tags: ,
Jul
17
2008
0

Q. How do I check if text exists in browser?

A. Use the .include? method or a regular expression …
Example html:

<p>
  watir does not go well with furry little animals
</p>

Example watir:

puts "Text 'watir' DOES exist" if @b.text.include? 'watir'
puts "Text 'regex' DOES NOT exist" unless @b.text =~ /regex/
puts "Text 'furry little animals' DOES exist" if @b.text.include? 'furry little animals'
puts "Text 'furry animals' DOES NOT exist" unless @b.text.include? 'furry animals'

Any character(s) placed between the apostrophe’s will be searched for. The response will return true if found, and false if not found.

Written by Sameh Abdelhamid in: watir | Tags: , ,
Jul
17
2008
0

Q. How do I check if the browser is visible?

A. Use the .visible method …
Example watir:

if @b.visible then
  puts "Browser IS visible"
else
  puts "Browser IS NOT visible"
end
Written by Sameh Abdelhamid in: watir | Tags:
Jul
16
2008
0

Q. How do I deal with an & character in my xpath?

A. Use the & amp; escape character …
Example html:

  <tr>
    <td>
      Data &amp; Elements
    </td>
  </tr>

Example watir:

@b.cell(:xpath, "//th[contains(text(),'Header')]").flash
@b.cell(:xpath, "//td[contains(text(),'Data &amp; Elements')]").flash

 

Written by Tim Koopmans in: watir | Tags:

Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes