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
A. Set an environment variable for your proxy from the command line …
set HTTP_PROXY=http://my.work.proxy:8080 gem install watir
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
A. Use .close_others method …
Example watir:
@b.close_others
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
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
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”.
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
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
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
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)
A. The Watir::IE class has a close all method …
Example watir:
Watir::IE.close_all()
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%
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)
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.
A. Use the .visible method …
Example watir:
if @b.visible then puts "Browser IS visible" else puts "Browser IS NOT visible" end
A. Use the & amp; escape character …
Example html:
<tr> <td> Data & Elements </td> </tr>
Example watir:
@b.cell(:xpath, "//th[contains(text(),'Header')]").flash @b.cell(:xpath, "//td[contains(text(),'Data & Elements')]").flash
Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes