tag:blogger.com,1999:blog-90670131487255115422024-03-13T19:36:03.487-07:00Ruby with Watirrentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-9067013148725511542.post-18870101147002765042009-04-17T02:27:00.001-07:002009-04-17T02:27:12.671-07:00System Integration Testing<p><b>System Integration Testing</b> (<b>SIT</b>), in the context of software systems and software engineering, is a testing process that exercises a software system's coexistence with others. System integration testing takes multiple integrated systems that have passed system testing as input and tests their required interactions. Following this process, the deliverable systems are passed on to acceptance testing.</p> <p>Systems integration testing (SIT) is a testing phase that may occur after unit testing and prior to user acceptance testing (UAT). Many organizations do not have a SIT phase and the first test of UAT may include the first integrated test of all software components.</p> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-71559373100985210552008-07-16T06:42:00.001-07:002008-07-16T06:42:06.598-07:00method_missing': unknown property or method `document' (WIN32OLERuntimeError)<div dir="ltr">Symptom:<br><br>while running the test case we are getting the following error.<br>D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/ie.rb:447:in `method_missing': unknown property or method `document' (WIN32OLERuntimeError)<br> HRESULT error code:0x800706ba<br> The RPC server is unavailable. from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/ie.rb:447:in `document'<br> from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/locator.rb:31:in `each_element'<br> from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/locator.rb:40:in `locate'<br> from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/container.rb:740:in `locate_tagged_element'<br> from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/link.rb:24:in `locate'<br> from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/element.rb:53:in `assert_exists'<br> from (eval):2:in `href'<br> from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Services/order_service.rb:50<br> from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/ie.rb:447:in `each_with_index'<br> from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Services/order_service.rb:46:in `each'<br> from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Services/order_service.rb:46:in `each_with_index'<br> from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Services/order_service.rb:46<br> from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Services/order_service.rb:19:in `each'<br> from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Services/order_service.rb:19<br><br><br><br>Solution:<br>This error is usually caused by IE being closed before watir has finished with it - Im assuming that's not happening here though.<br> <br><br></div> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com1tag:blogger.com,1999:blog-9067013148725511542.post-51663511096306670672008-07-15T23:56:00.001-07:002008-07-15T23:56:33.802-07:00How do I take screenshots and append to a Word file?<div dir="ltr"><br><br>require 'watir'<br> require 'win32ole' <br> @@word=WIN32OLE.new('Word.Application') <br> @@word.Documents.Add() <br> def take_a_screenshot(url)<br> @autoit = WIN32OLE.new("AutoItX3.Control")<br> browser = Watir::IE.new<br> browser.bring_to_front<br> browser.goto(url)<br> browser.maximize<br> @autoit.Send("{PRINTSCREEN}")<br> browser.close<br> @@word.Selection.Paste<br> @autoit.Send("{ENTER}")<br> end<br> <br> def save_file<br> @@word.ActiveDocument.SaveAs('C:\screenshots.doc') <br> @@word.ActiveDocument.close <br> @@word.Quit<br> end<br><br> take_a_screenshot('<a href="http://www.agiletester.co.uk">http://www.agiletester.co.uk</a>')<br> take_a_screenshot('<a href="http://www.fsf.org/">http://www.fsf.org/</a>')<br> save_file<br><br><br></div> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-38046937585522900622008-07-15T23:50:00.001-07:002008-07-15T23:50:07.262-07:00How do I use variables with regular expressions?<div dir="ltr"><h2>How do I use variables with regular expressions?</h2> <p><em>Originally from <span class="nobr"><a href="http://groups.google.com/group/watir-general/browse_thread/thread/af924f9ac38e4606" rel="nofollow">this thread<sup><img class="rendericon" src="http://wiki.openqa.org/images/icons/linkext7.gif" alt="" width="7" align="absmiddle" border="0" height="7"></sup></a></span>.</em></p> <p>In order to use regular expressions with variables, you need to build your string using the <em>Regexp.new( 'pattern' [, options])</em> syntax.</p> <p># a is a string<br> irb(main):001:0> a = "foofar"<br> => "foofar"</p> <p># create a new regular expression, b, from the string in a<br> # this is the same as writing b = Regexp.new "foofar"<br> irb(main):002:0> b = Regexp.new a<br> => /foofar/</p> <p># obtain the string between the / characters<br> irb(main):003:0> b.source<br> => "foofar"</p> <p># the regular expression itself<br> irb(main):004:0> b<br> => /foofar/</p> <p># a string representation of the regexp as you would expect to see it in code<br> irb(main):005:0> b.inspect<br> => "/foofar/"</p> <p># a different string representation of the regexp<br> irb(main):006:0> b.to_s<br> => "(?-mix:foofar)" </p> <p># additional examples<br> irb(main):001:0> var = 'today'<br> => "today"</p> <p>irb(main):002:0> my_string = 'here today gone tomorrow'<br> => "here today gone tomorrow"</p> <p>irb(main):003:0> b = Regexp.new var<br> => /today/</p> <p># note that a regular expression match returns nil if not found<br> # and a number if successful indicating the position in the string<br> # where the match was found<br> irb(main):004:0> my_string =~ b<br> => 5</p> <p>irb(main):005:0> var1 = 'tom'<br> => "tom"</p> <p>irb(main):006:0> c = Regexp.new var1 + 'orrow'<br> => /tomorrow/</p> <p>irb(main):007:0> my_string =~ c<br> => 16</p></div> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-9117878925874159392008-07-12T00:50:00.001-07:002008-07-12T00:50:04.843-07:00Library of FunctionsMore information is available at <a href="http://www.rubycentral.com/book/">http://www.rubycentral.com/book/</a><br><br>Sample is <br>Create a file called file call_me.rb that contains<br><br>def do_something(argument)<br> # do something<br>end<br><br>Create file call_another_file.rb that contains<br><br>require "call_me" # this includes call_me.rb<br>do_something(argument) # this calls method do_something<br><br> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-68010316427630574562008-07-01T02:30:00.001-07:002008-07-01T02:30:06.513-07:00Watir : Methods supported by Element<h2>Methods Supported by Element</h2> <h4><a name="MethodssupportedbyElement-TheHTMLElementsthatarecurrentlysupportedinclude:"></a>The HTML Elements that are currently supported include:</h4> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"> <b>button</b> </td> <td class="confluenceTd"> <input> tags with type=button, submit, image or reset</td> </tr> <tr> <td class="confluenceTd"> <b>radio</b> </td> <td class="confluenceTd"> <input> tags with the type=radio; known as radio buttons </td> </tr> <tr> <td class="confluenceTd"> <b>check_box</b> </td> <td class="confluenceTd"> <input> tags with type=checkbox </td> </tr> <tr> <td class="confluenceTd"> <b>text_field</b> </td> <td class="confluenceTd"> <input> tags with the type=text (single-line), type=textarea (multi-line), and type=password </td> </tr> <tr> <td class="confluenceTd"> <b>hidden</b> </td> <td class="confluenceTd"> <input> tags with type=hidden </td> </tr> <tr> <td class="confluenceTd"> <b>select_list</b> </td> <td class="confluenceTd"> <select> tags, known as drop-downs or drop-down lists </td> </tr> <tr> <td class="confluenceTd"> <b>label</b> </td> <td class="confluenceTd"> <label> tags (including "for" attribute) </td> </tr> <tr> <td class="confluenceTd"> <b>span</b> </td> <td class="confluenceTd"> <span> tags </td> </tr> <tr> <td class="confluenceTd"> <b>div</b> </td> <td class="confluenceTd"> <div> tags </td> </tr> <tr> <td class="confluenceTd"> <b>p</b> </td> <td class="confluenceTd"> <p> (paragraph) tags </td> </tr> <tr> <td class="confluenceTd"> <b>link</b> </td> <td class="confluenceTd"> <a> (anchor) tags </td> </tr> <tr> <td class="confluenceTd"> <b>table</b> </td> <td class="confluenceTd"> <table> tags, including <ins>row</ins> and <ins>cell</ins> methods for accessing nested elements </td> </tr> <tr> <td class="confluenceTd"> <b>image</b> </td> <td class="confluenceTd"> <img> tags </td> </tr> <tr> <td class="confluenceTd"> <b>form</b> </td> <td class="confluenceTd"> <form> tags </td> </tr> <tr> <td class="confluenceTd"> <b>frame</b> </td> <td class="confluenceTd"> frames, including both the <frame> elements and the corresponding pages </td> </tr> <tr> <td class="confluenceTd"> <b>map</b> </td> <td class="confluenceTd"> <map> tags </td> </tr> <tr> <td class="confluenceTd"> <b>area</b> </td> <td class="confluenceTd"> <area> tags </td> </tr> <tr> <td class="confluenceTd"> <b>li</b> </td> <td class="confluenceTd"> <li> tags </td> </tr> <tr> <td class="confluenceTd"> <b>h1 - h6</b> </td> <td class="confluenceTd"> <h1>, <h2>, <h3>, <h4>, <h5>, <h6> tags </td> </tr> </tbody></table> <h4><a name="MethodssupportedbyElement-Theways("How"s)thatareavailabletoidentifyanhtmlobjectdependupontheobjecttype,butinclude:"></a>The ways ("How"s) that are available to identify an html object depend upon the object type, but include:</h4> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"> <b>:id</b> </td> <td class="confluenceTd"> Used to find an element that has an "id=" attribute. Since each id should be unique, according to the XHTML specification, this is recommended as the most reliable method to find an object. *</td> </tr> <tr> <td class="confluenceTd"> <b>:name</b> </td> <td class="confluenceTd"> Used to find an element that has a "name=" attribute. This is useful for older versions of HTML, but "name" is deprecated in XHTML. *</td> </tr> <tr> <td class="confluenceTd"> <b>:value</b> </td> <td class="confluenceTd"> Used to find a text field with a given default value, or a button with a given caption, or a text field </td> </tr> <tr> <td class="confluenceTd"> <b>:text</b> </td> <td class="confluenceTd"> Used for links, spans, divs and other element that contain text.</td> </tr> <tr> <td class="confluenceTd"> <b>:index</b> </td> <td class="confluenceTd"> Used to find the nth element of the specified type on a page. For example, button(:index, 2) finds the second button. Current versions of WATIR use 1-based indexing, but future versions will use 0-based indexing.</td> </tr> <tr> <td class="confluenceTd"> <b>:class</b> </td> <td class="confluenceTd"> Used for an element that has a "class=" attribute.</td> </tr> <tr> <td class="confluenceTd"> <b>:title</b> </td> <td class="confluenceTd"> Used for an element that has a "title=" attribute.</td> </tr> <tr> <td class="confluenceTd"> <b>:xpath</b> </td> <td class="confluenceTd"> Finds the item using xpath query.</td> </tr> <tr> <td class="confluenceTd"> <b>:method</b> </td> <td class="confluenceTd"> Used only for forms, the method attribute of a form is either GET or POST.</td> </tr> <tr> <td class="confluenceTd"> <b>:action</b> </td> <td class="confluenceTd"> Used only for form elements, specifies the URL where the form is to be submitted.</td> </tr> <tr> <td class="confluenceTd"> <b>:href</b> </td> <td class="confluenceTd"> Used to identify a link by its "href=" attribute.</td> </tr> <tr> <td class="confluenceTd"> <b>:src</b> </td> <td class="confluenceTd"> Used to identify an image by its URL.</td> </tr> </tbody></table> <p> * <b>:id</b> and <b>:name</b> are the quickest of these to process, and so should be used when possible to speed up scripts.</p> <h4><a name="MethodssupportedbyElement-SupportedMethodsbyElement"></a>Supported Methods by Element</h4> <table class="confluenceTable"><tbody> <tr> <th class="confluenceTh"> </th> <th class="confluenceTh">:id </th> <th class="confluenceTh">:name </th> <th class="confluenceTh">:value </th> <th class="confluenceTh">:text </th> <th class="confluenceTh">:caption </th> <th class="confluenceTh">:index </th> <th class="confluenceTh">:class</th> <th class="confluenceTh">:xpath </th> <th class="confluenceTh">:title </th> <th class="confluenceTh">:method </th> <th class="confluenceTh">:action </th> <th class="confluenceTh">:href </th> <th class="confluenceTh">:src </th> <th class="confluenceTh">:for </th> <th class="confluenceTh">multiple attribute support? </th> </tr> <tr> <td class="confluenceTd"><b>button</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>radio</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>check_box</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>text_field</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>hidden</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>select_list</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>label</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>span</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>div</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>p</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>link</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>table</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>image</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>form</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>frame</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>map</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>area</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>li</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> </tr> <tr> <td class="confluenceTd"><b>h1 - h6</b> </td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/error.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td> <td class="confluenceTd"><img class="emoticon" src="http://pettichord.com/watirtutorial/docs/watir_cheat_sheet/WTR/icons/emoticons/check.gif" alt="" width="16" align="absmiddle" border="0" height="16"></td></tr></tbody></table> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-5094496744318287362008-06-29T07:31:00.001-07:002008-06-29T07:31:51.249-07:00Keyword or Table Driven Test Automation<a name="KeywordDrivenTestAutomation"><b> <p>Keyword or Table Driven Test Automation</p></b></a> <p align="justify">Nearly everything discussed so far defining our ideal automation framework has been describing the best features of "keyword driven" test automation. Sometimes this is also called "table driven" test automation. It is typically an application-independent automation framework designed to process our tests. These tests are developed as data tables using a keyword vocabulary that is independent of the test automation tool used to execute them. This keyword vocabulary should also be suitable for manual testing, as you will soon see.</p><b><u> </u></b><p align="justify"><b><u>Action, Input Data, and Expected Result ALL in One Record:</u></b><br>The data table records contain the keywords that describe the actions we want to perform. They also provide any additional data needed as input to the application, and where appropriate, the benchmark information we use to verify the state of our components and the application in general.</p> <p align="justify">For example, to verify the value of a user ID textbox on a login page, we might have a data table record as seen in Table 1:</p><a name="Table1"> </a><p align="center"> </p><center> <table border="1" cellpadding="7" cellspacing="2"> <tbody> <tr> <td valign="center"><b> </b><p align="center"><b>WINDOW</b></p></td> <td valign="center"><b> </b><p align="center"><b>COMPONENT</b></p></td> <td valign="center"><b> </b><p align="center"><b>ACTION</b></p></td> <td valign="center"><b> </b><p align="center"><b>EXPECTED</b></p> <p align="center"><b>VALUE</b></p></td></tr> <tr> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">LoginPage</font></b></p></td> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">UserIDTextbox</font></b></p></td> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">VerifyValue</font></b></p></td> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">"MyUserID"</font></b></p></td></tr></tbody></table></center> <a name="Table1"><b><font size="2"> <p align="center">Table 1</p></font></b></a> <b><u> </u></b><p align="justify"><b><u>Reusable Code, Error Correction and Synchronization:</u></b><br>Application-independent component functions are developed that accept application-specific variable data. Once these component functions exist, they can be used on each and every application we choose to test with the framework. </p> <p align="justify">Figure 2 presents pseudo-code that would interpret the data table record from Table 1 and Table 2. In our design, the primary loop reads a record from the data table, performs some high-level validation on it, sets focus on the proper object for the instruction, and then routes the complete record to the appropriate component function for full processing. The component function is responsible for determining what action is being requested, and to further route the record based on the action. </p><br><a name="Figure2"> <center> <table border="1" cellpadding="7" cellspacing="2"> <tbody> <tr> <td valign="center"><b><font size="4"> </font></b><p align="center"><b><font size="4">Framework Pseudo-Code</font></b></p></td></tr> <tr> <td valign="top"><font face="Courier New" size="2"> <p><b>Primary Record Processor Module:</b></p> Verify "LoginPage" Exists. (Attempt recovery if not)<br> Set focus to "LoginPage".<br> Verify "UserIDTextbox" Exists. (Attempt recovery if not)<br> Find "Type" of component "UserIDTextbox". (It is a Textbox)<br> Call the module that processes ALL Textbox components.<br> <p><b>Textbox Component Module:</b></p> Validate the action keyword "VerifyValue".<br> Call the Textbox.VerifyValue function.<br> <p><b>Textbox.VerifyValue Function:</b></p> Get the text stored in the "UserIDTextbox" Textbox.<br> Compare the retrieved text to "MyUserID".<br> Record our success or failure.<br></font></td></tr></tbody></table></center><b><font size="2"> <p align="center">Figure 2</p></font></b></a><b><u> </u></b><p align="justify"><b><u>Test Design for Man and Machine, With or Without the Application:</u></b><br>Table 2 reiterates the actual data table record run by the automation framework above:</p><br><a name="Table2"> </a><p align="center"> </p><center> <table border="1" cellpadding="7" cellspacing="2"> <tbody> <tr> <td valign="center"><b> </b><p align="center"><b>WINDOW</b></p></td> <td valign="center"><b> </b><p align="center"><b>COMPONENT</b></p></td> <td valign="center"><b> </b><p align="center"><b>ACTION</b></p></td> <td valign="center"><b> </b><p align="center"><b>EXPECTED</b></p> <p align="center"><b>VALUE</b></p></td></tr> <tr> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">LoginPage</font></b></p></td> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">UserIDTextbox</font></b></p></td> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">VerifyValue</font></b></p></td> <td valign="center"><b><font face="Courier New"> </font></b><p align="center"><b><font face="Courier New">"MyUserID"</font></b></p></td></tr></tbody></table></center> <a name="Table2"><b><font size="2"> </font></b></a><p align="center"><a name="Table2"><b><font size="2">Table 2</font></b></a></p> <p align="justify">Note how the record uses a vocabulary that can be processed by both man and machine. With <i>minimal</i> training, a human tester can be made to understand the record instruction as deciphered in Figure 3:</p><a name="Figure3"> </a><p align="center"> </p><center> <table border="1" cellpadding="7" cellspacing="2"> <tbody> <tr> <td valign="top"><b><font face="Courier New">On the LoginPage, in the UserIDTextbox,<br>Verify the Value is "MyUserID".</font></b></td></tr></tbody></table></center><a name="Figure3"><b><font size="2"> </font></b></a><p align="center"><a name="Figure3"><b><font size="2">Figure 3</font></b></a></p> <p align="justify">Once they learn or can reference this simple vocabulary, testers can start designing tests without knowing anything about the automation tool used to execute them.</p> <p align="justify">Another advantage of the keyword driven approach is that testers can develop tests without a functioning application as long as preliminary requirements or designs can be determined. All the tester needs is a fairly reliable definition of what the interface and functional flow is expected to be like. From this they can write most, if not all, of the data table test records. </p> <p align="justify">Sometimes it is hard to convince people that this advantage is realizable. Yet, take our login example from Table 2 and Figure 3. We do not need the application to construct any login tests. All we have to know is that we will have a login form of some kind that will accept a user ID, a password, and contain a button or two to submit or cancel the request. A quick discussion with development can confirm or modify our determinations. We can then complete the test table and move on to another.</p> <p align="justify">We can develop other tests similarly for any part of the product we can receive or deduce reliable information. In fact, if in such a position, testers can actually help guide the development of the UI and flow, providing developers with upfront input on how users might expect the product to function. And since the test vocabulary we use is suitable for both manual and automated execution, designed testing can commence immediately once the application becomes available. </p> <p align="justify">It is, perhaps, important to note that this does not suggest that these tests can be executed <i>automatically</i> as soon as the application becomes available. The test record in Table 2 may be perfectly understood and executable by a person, but the automation framework knows nothing about the objects in this record until we can provide that additional information. That is a separate piece of the framework we will learn about when we discuss application mapping.</p><b><u> </u></b><p align="justify"><b><u>Findings:</u></b><br>The keyword driven automation framework is initially the hardest and most time-consuming data driven approach to implement. After all, we are trying to fully insulate our tests from both the many failings of the automation tools, as well as changes to the application itself. </p> <p align="justify">To accomplish this, we are essentially writing enhancements to many of the component functions already provided by the automation tool: such as error correction, prevention, and enhanced synchronization.</p> <p align="justify">Fortunately, this heavy, initial investment is mostly a one-shot deal. Once in place, keyword driven automation is arguably the easiest of the data driven frameworks to maintain and perpetuate providing the greatest potential for long-term success. </p> <p align="justify">Additionally, there may now be commercial products suitable for your needs to decrease, but not eliminate, much of the up-front technical burden of implementing such a framework. This was not the case just a few years ago. </p> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-5094153027418028562008-06-23T10:18:00.001-07:002008-06-23T10:18:30.184-07:00Write to excel fileFound an interesting peice of code to write to xls.<br>To write directly to an <b style="color: black; background-color: rgb(255, 255, 102);">Excel</b>-file (with formatting) or to a <br> simple csv-file (without formatting). <br> <p>To write the result of a test to an <b style="color: black; background-color: rgb(255, 255, 102);">Excel</b>-File, you can do the <br> following: <br> </p><p><b style="color: black; background-color: rgb(255, 255, 102);">excel</b> = WIN32OLE::new('<b style="color: black; background-color: rgb(255, 255, 102);">excel</b>.Application') <br> </p><p>workbook = <b style="color: black; background-color: rgb(255, 255, 102);">excel</b>.Workbooks.Add <br> </p><p>worksheet = workbook.Worksheets(1) <br> </p><p>worksheet.SaveAs("test.xls") <br> </p><p>#the headline <br> </p><p>worksheet.range("a1").value = "Action" <br> </p><p>worksheet.range("b1").value = "Result" <br> </p><p>#put a "try-catch" around the test, writing either "ok" to a green <br> cell or the error-text to a red cell: <br> </p><p>begin <br> </p><p> …do something… <br> </p><p>assert($ie.contains_text("Test"), "ERROR 1!") <br> </p><p> worksheet.range("a1").value = "Action 1" <br> </p><p>worksheet.range("b1").value = "ok" <br> </p><p> worksheet.range("b1").Interior['ColorIndex'] = 43 #green <br> </p><p>rescue => e <br> </p><p> worksheet.range("b1").value = e.to_s <br> </p><p> worksheet.range("b1").Interior['ColorIndex'] = 46 #red <br> </p><p>end <br> </p><p>worksheet.columns("a:b").AutoFit <br> </p><p>workbook.save <br> </p><p>workbook.close <br> </p><p><b style="color: black; background-color: rgb(255, 255, 102);">excel</b>.Quit <br> </p><p>Writing a csv-File is simpler but lacks the ability to use formatting: <br> </p><p>logfile = open("test.csv", "a") <br> </p><p>logfile.puts "Action;Result" <br> </p><p>begin <br> </p><p> …do something… <br> </p><p>assert($ie.contains_text("Test"), "ERROR 1!") <br> </p><p> logRow = "Action 1;" <br> </p><p>logRow += "ok" <br> </p><p>logfile.puts logRow <br> </p><p>rescue => e <br> </p><p> logRow = "Action 1;" <br> </p><p>logRow += e <br> </p><p>logfile.puts logRow <br> </p>end rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-31881870997926482392008-06-23T09:52:00.001-07:002008-06-23T09:52:36.778-07:00Accessing tables inside table using xpathWhen we have multiple tables inside tables then accessing it becomes tough. For ex. if the xpath for an element is like '/html/body/table/tbody/tr/td/table[2]/tbody/tr[5]/td[2]/table/tbody/tr/td' then we can get the element using Watir::IE.table(:index, 4)[1][1]<br> <br> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-10664344836532093882008-06-21T22:16:00.001-07:002008-06-21T22:16:12.324-07:00Accessing iframes using Ruby<p><font class="fixed_width" face="Courier, Monospaced">"Watir allows access to frame objects by identifying them by their name attribute. This is the form that Watir takes to access a frame: <br> ie.frame("menu") <br> </font></p><p><font class="fixed_width" face="Courier, Monospaced">To access individual objects within that frame, you prefix the object using the Watir code above. If we had a hyperlink in the menu frame: Click Menu Item, we could click it like this: <br> ie.frame("menu").link(:text, "Click Menu Item").click <br> </font></p><font class="fixed_width" face="Courier, Monospaced">See [installation dir]/watir_bonus/doc/watir_user_guide.html<br><br>Also one can access the iframe using the frame ID. for ex. <br> ie.frame(:id,'frameID')<br></font> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-28593070010414072942008-06-18T03:30:00.001-07:002008-06-18T11:10:23.795-07:00Watir Script Examples<span class="submitted">Sun, </span> <p>My evaluation of Watir as an automation tool for my website is complete. I really like this tool! It runs fast - a lot faster than Silk Test that I've used before. The only con right now is there's no record and playback (you have to look into WET or other Watir Maker). So far I haven't had too many issues finding the object on the page.</p> <p>First start with the online <a href="http://wtr.rubyforge.org/" target="blank">tutorial and FAQ: </a></p> <p>Watir works with IE 6 and IE 7, with the assistance of the IE Developer Toolbar. Navigate to your webpage with the toolbar. Create your Watir scripts using the Scite text editor that comes with the Ruby installation (colors make your life a whole lot easier). Save files with a .rb extension. To run, simply find the script.rb and double click it.</p> <p>With an IE browser window open with the tool bar, click the arrow on the left and select the object on your page. You'll see the attribute - usually an id, name, href, and so on. You can just follow the basic syntax below (comments are followed by the # symbol):</p> <p>browser.object(:attribute,"value").action<br> $ie.button(:id,"button1").click</p> <p>Start of a script:<br> require 'watir'<br> $ie = Watir::IE.new<br> $ie.set_fast_speed #Compare this with $ie.set_slow_speed, you'll see a big difference!<br> $time = Time.now.strftime("%m/%d/%y-%H:%M:%S") # Get the time now and format to string. Can also try $time = Time.now.to_s<br> $ie.goto("<a href="http://www.newsqa.com">www.newsqa.com</a>") #Note that $ next to the variable name is not required.</p> <p>-----------------------------------------------<br> Watir/Ruby code examples:</p> <p>Read from a file in Watir script:<br> -----------------------------------------------<br> #Write to a file in Watir script: Open the file you want to write to in append mode. If a file exists, it'll append #to it. If not, it creates a new one </p> <p>File.open('nameYourFile.txt', 'a') do |f|<br> f.puts "Writing to file. Code gets indented"<br> end #Make sure to end the loop<br> f.close # close the file when done writing to it<br> ------------------------------------------------<br> Bypassing an Internet Explorer 7 security warning:<br> if $ie.text.include? "Login" #checks that text is included on the page<br> puts "Login page found, so login!" #puts writes to the command window<br> else<br> f.puts "Security Alert must be in the way. Click to bypass"<br> $ie.link(:id, "overridelink").click<br> f.puts "Clicked the continue link in IE 7"<br> end<br> ------------------------------------------------<br> Bypass Internet Explorer 6 security warning:<br> ------------------------------------------------<br> Bypassing a Javascript popup warning<br> These are pretty tricky. After much research, I got it to work by adding this to the script:</p> <p>require 'watir'<br> require 'watir/winClicker'<br> require 'watir\contrib\enabled_popup' </p> <p>def startClicker( button , waitTime= 9, user_input=nil )<br> #get a handle if one exists<br> hwnd = $ie.enabled_popup(waitTime)<br> if (hwnd)<br> w = WinClicker.new<br> puts ("yes there is a popup")<br> if ( user_input )<br> w.setTextValueForFileNameField( hwnd, "{user_input}" )<br> end</p> <p> #"OK" or whatever the name on the button is<br> w.clickWindowsButton_hwnd( hwnd, "#{button}" )<br> puts ("Pop up button is: #{button}")<br> sleep 2<br> w=nil<br> end<br> end</p> <p># Use click_no_wait on the object that triggers the Javascript warning<br> $ie.link(:id, "deleteProduct").click_no_wait<br> #In the section of the script where the popup occurs:<br> startClicker( "OK", 3)</p>rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com4tag:blogger.com,1999:blog-9067013148725511542.post-9063506757099883212008-06-17T21:45:00.001-07:002008-06-17T21:45:49.047-07:00Watir 1.5.6 released with "Zippy" speed by Bret Pettichord<h3 class="title">Found this article at <a href="http://www.io.com/~wazmo/blog/archives/2008_06.html#000279">http://www.io.com/~wazmo/blog/archives/2008_06.html#000279</a><br></h3><br><br><br><h3 class="title">Watir 1.5.6 released with "Zippy" speed</h3> Last week we released a new version of Watir. We've mostly been accumulating bug fixes and minor enhancements. However there is one new feature that may be worth the upgrade. We've added a speed improvement to Watir, which we call "Zippy" speed. <h3>Installation</h3>Watir now has a two-step install process (assuming you've already installed Ruby). Type this at the command prompt: <pre><code>gem update --system<br>gem install watir</code></pre>This will update your version of the Rubygems installer and then install the latest version of Watir. Some people have had install problems with 1.5.4 and <a href="http://1.5.5.">1.5.5.</a> Those problems are now fixed. <p>We are also now recommending that people use Ruby 1.8.6-26 final with Watir. A Ruby bug affecting many Watir users in earlier versions of 1.8.6 is now fixed. If you are upgrading your version of Ruby, you basically have to do a fresh install. There is no upgrade option. Sorry. </p><h3>Zippy Speed</h3>When you first use Watir, it is rather slow. This is intentional. We made Watir run slow at first because we found that new users wanted to be able to watch their scripts and make sure they were working correctly. So we added some delays to slow Watir down to an auditable speed. <p>However, once you have confidence in your tests, you probably want to run them faster. This is just one command. </p><pre><code>ie = Watir::IE.new<br>ie.speed = :fast</code></pre>I know this is a surprise to some Watir users: we haven't done a great job of letting this trick be known. This feature has been in Watir for a long time, certainly as far back as Watir 1.4. <p>What is new is that we now have an even faster way to run Watir. We call this "zippy" and it works the same way. </p><pre><code>ie = Watir::IE.new<br>ie.speed = :zippy</code></pre>Normally, when Watir enters text into a text field, it does so letter by letter. Two reasons. One, it looks cooler. Two, there are rare cases where you have to do this to realistically engage Javascript attached to the text field that, say, limits the characters that can be entered. But with tests that had lots of data entry, this could really slow things down. <p>The new :zippy speed speeds up tests by enter text fields all at once. If you have tests that require character-by-character text entry, you'll need to continue to use :fast. </p><p>In the past, many Watir users realized that they could speed up their tests by using value instead of set. Thus, instead of </p><pre><code>ie.text_field(:id, 'payment').set '25'</code></pre>They would use <pre><code>ie.text_field(:id, 'payment').value = '25'</code></pre> The new :zippy speed does exactly the same thing, only behind the scenes so you don't have to modify your individual scripts. <p>Zippy speed was originally included in Watir 1.5.4, but I've been reluctant to brag about it until we got our install problems fixed. It is based on a proof of concept by Jonathan Kohl. </p><h3>Should You Upgrade?</h3>Other features new since 1.5.3 (released last fall) include support for Chinese character input and the ability to locate more elements using multiple attributes. However, multiple attribute support for text fields, buttons and other input elements has yet to be implemented. We know you are waiting for it. <p>You can now call the row method from within a table, also frequently requested. There are a number of other fixes. (See the <a href="http://wiki.openqa.org/display/WTR/Release+Notes">Release Notes</a> for details.) </p><p>I know many of you are still using Watir <a href="http://1.4.1.">1.4.1.</a> There is only one reason I know of why you should not upgrade. We have had several reports that Watir 1.5.3 and later is slower with some complex pages. We recently got a reproducible case of this problem and will be looking at fixing it in <a href="http://1.5.7.">1.5.7.</a> </p> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-33543371024245347462008-06-17T11:06:00.000-07:002008-06-17T11:07:00.823-07:00DllRegisterServer in AutoItX3.dll failed. Return code was: 0x80070005<b>Symptom<br><br></b>When we try to registerdll we will get the following error<br><br>---------------------------<br>RegSvr32<br>---------------------------<br>DllRegisterServer in AutoItX3.dll failed.<br>Return code was: 0x80070005<br> ---------------------------<br>OK <br>---------------------------<br><br><br><b>Solution<br></b><span class="article"><span id="intelliTxt"><p> <b>Return code was: 0x80070005</b></p><p> If you are logged on with a user account that does <b>NOT</b> have administrative privileges, you will experience this behavior if the DLL file writes to the registry, or changes files in the <b>%SystemRoot%\System32</b> folder.</p><p> To workaround this behavior, log on with an account that has administrative privileges.</p></span></span><br> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com0tag:blogger.com,1999:blog-9067013148725511542.post-28200751065054756792008-06-17T10:58:00.001-07:002008-06-17T10:58:40.247-07:00unknown OLE server: `AutoItX3.Control' (WIN32OLERuntimeError)<b>Symptom</b><br>Following error is displayed when we run the script<br>D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir.rb:129:in `initialize': unknown OLE server: `AutoItX3.Control' (WIN32OLERuntimeError)<br> HRESULT error code:0x800401f3 Invalid class string from D:/Installations/Ruby/lib/ruby/gems/1.8/gem<br>s/watir-1.5.6/./watir.rb:129:in `new' from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir.rb<br> :129:in `autoit' from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/ie<br>.rb:425:in `autoit' from D:/Installations/Ruby/lib/ruby/gems/1.8/gems/watir-1.5.6/./watir/ie<br>.rb:413:in `bring_to_front' from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Servic<br> es/Verify patch number.rb:41:in `goto' from D:/Installations/Ruby/Projects/Learning/Create_Company_Order_Servic<br>es/Verify patch number.rb:47<br>D:\Installations\Ruby\Projects\Learning\Create_Company_Order_Services>regsvr32 AutoItX3.dll<br> <br><br><b>Solution<br></b>You need to register AutoIt. In a command window, navigate to the directory where you've put AutoIt and type:<br>regsvr32 AutoItX3.dll<br> rentatesterhttp://www.blogger.com/profile/15834770476407130403noreply@blogger.com7