watir-classic 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. data/CHANGES +721 -0
  2. data/LICENSE +34 -0
  3. data/README.rdoc +78 -0
  4. data/VERSION +1 -0
  5. data/bin/watir-console +5 -0
  6. data/lib/watir-classic.rb +14 -0
  7. data/lib/watir-classic/IEDialog/Release/IEDialog.dll +0 -0
  8. data/lib/watir-classic/assertions.rb +44 -0
  9. data/lib/watir-classic/browser.rb +149 -0
  10. data/lib/watir-classic/browsers.rb +7 -0
  11. data/lib/watir-classic/close_all.rb +31 -0
  12. data/lib/watir-classic/container.rb +110 -0
  13. data/lib/watir-classic/contrib/enabled_popup.rb +21 -0
  14. data/lib/watir-classic/contrib/ie-new-process.rb +27 -0
  15. data/lib/watir-classic/contrib/page_checker.rb +29 -0
  16. data/lib/watir-classic/cookies.rb +80 -0
  17. data/lib/watir-classic/core.rb +43 -0
  18. data/lib/watir-classic/dialogs/file_field.rb +34 -0
  19. data/lib/watir-classic/dialogs/javascript.rb +43 -0
  20. data/lib/watir-classic/drag_and_drop_helper.rb +68 -0
  21. data/lib/watir-classic/element.rb +438 -0
  22. data/lib/watir-classic/element_collection.rb +109 -0
  23. data/lib/watir-classic/element_extensions.rb +69 -0
  24. data/lib/watir-classic/exceptions.rb +50 -0
  25. data/lib/watir-classic/form.rb +96 -0
  26. data/lib/watir-classic/frame.rb +47 -0
  27. data/lib/watir-classic/ie-class.rb +767 -0
  28. data/lib/watir-classic/ie-process.rb +47 -0
  29. data/lib/watir-classic/ie.rb +20 -0
  30. data/lib/watir-classic/image.rb +111 -0
  31. data/lib/watir-classic/input_elements.rb +480 -0
  32. data/lib/watir-classic/irb-history.rb +31 -0
  33. data/lib/watir-classic/link.rb +46 -0
  34. data/lib/watir-classic/locator.rb +243 -0
  35. data/lib/watir-classic/logger.rb +19 -0
  36. data/lib/watir-classic/matches.rb +23 -0
  37. data/lib/watir-classic/modal_dialog.rb +72 -0
  38. data/lib/watir-classic/module.rb +12 -0
  39. data/lib/watir-classic/non_control_elements.rb +114 -0
  40. data/lib/watir-classic/options.rb +56 -0
  41. data/lib/watir-classic/page-container.rb +114 -0
  42. data/lib/watir-classic/process.rb +20 -0
  43. data/lib/watir-classic/screen_capture.rb +115 -0
  44. data/lib/watir-classic/supported_elements.rb +172 -0
  45. data/lib/watir-classic/table.rb +224 -0
  46. data/lib/watir-classic/testcase.rb +97 -0
  47. data/lib/watir-classic/util.rb +35 -0
  48. data/lib/watir-classic/version.rb +4 -0
  49. data/lib/watir-classic/wait.rb +41 -0
  50. data/lib/watir-classic/wait_helper.rb +12 -0
  51. data/lib/watir-classic/waiter.rb +98 -0
  52. data/lib/watir-classic/win32.rb +40 -0
  53. data/lib/watir-classic/win32ole.rb +16 -0
  54. data/lib/watir-classic/win32ole/1.8.7/win32ole.so +0 -0
  55. data/lib/watir-classic/win32ole/1.9.3/win32ole.so +0 -0
  56. data/lib/watir-classic/window.rb +68 -0
  57. data/lib/watir-classic/xpath_locator.rb +52 -0
  58. data/rakefile.rb +54 -0
  59. data/unittests/all_tests.rb +10 -0
  60. data/unittests/buttons_xpath_test.rb +68 -0
  61. data/unittests/checkbox_test.rb +163 -0
  62. data/unittests/checkbox_xpath_test.rb +106 -0
  63. data/unittests/click_no_wait_test.rb +23 -0
  64. data/unittests/close_all_test.rb +17 -0
  65. data/unittests/core_tests.rb +17 -0
  66. data/unittests/css_selector_test.rb +44 -0
  67. data/unittests/css_test.rb +38 -0
  68. data/unittests/dialog_test.rb +64 -0
  69. data/unittests/div2_xpath_test.rb +21 -0
  70. data/unittests/div_test.rb +170 -0
  71. data/unittests/div_xpath_test.rb +95 -0
  72. data/unittests/document_standards.rb +63 -0
  73. data/unittests/element_collection_indexes_test.rb +57 -0
  74. data/unittests/element_collections_test.rb +100 -0
  75. data/unittests/element_test.rb +47 -0
  76. data/unittests/errorchecker_test.rb +31 -0
  77. data/unittests/filefield_test.rb +43 -0
  78. data/unittests/filefield_xpath_test.rb +35 -0
  79. data/unittests/form_test.rb +282 -0
  80. data/unittests/form_xpath_test.rb +254 -0
  81. data/unittests/frame_test.rb +165 -0
  82. data/unittests/google_form_test.rb +15 -0
  83. data/unittests/html/JavascriptClick.html +39 -0
  84. data/unittests/html/blankpage.html +11 -0
  85. data/unittests/html/buttons1.html +40 -0
  86. data/unittests/html/checkboxes1.html +89 -0
  87. data/unittests/html/click_no_wait.html +14 -0
  88. data/unittests/html/complex_table.html +35 -0
  89. data/unittests/html/cssTest.html +42 -0
  90. data/unittests/html/depot_store.html +59 -0
  91. data/unittests/html/div.html +92 -0
  92. data/unittests/html/div_xml.html +21 -0
  93. data/unittests/html/fileupload.html +44 -0
  94. data/unittests/html/formTest1.html +38 -0
  95. data/unittests/html/forms2.html +44 -0
  96. data/unittests/html/forms3.html +131 -0
  97. data/unittests/html/forms4.html +26 -0
  98. data/unittests/html/frame_buttons.html +4 -0
  99. data/unittests/html/frame_links.html +4 -0
  100. data/unittests/html/frame_multi.html +5 -0
  101. data/unittests/html/google_india.html +119 -0
  102. data/unittests/html/ie7_document_standards.html +9 -0
  103. data/unittests/html/ie8_document_standards.html +9 -0
  104. data/unittests/html/ie9_document_standards.html +9 -0
  105. data/unittests/html/iframe.html +3 -0
  106. data/unittests/html/iframeTest.html +17 -0
  107. data/unittests/html/iframeTest1.html +7 -0
  108. data/unittests/html/iframeTest2.html +5 -0
  109. data/unittests/html/images/1.gif +0 -0
  110. data/unittests/html/images/2.GIF +0 -0
  111. data/unittests/html/images/3.GIF +0 -0
  112. data/unittests/html/images/button.jpg +0 -0
  113. data/unittests/html/images/circle.jpg +0 -0
  114. data/unittests/html/images/map.GIF +0 -0
  115. data/unittests/html/images/map2.gif +0 -0
  116. data/unittests/html/images/minus.GIF +0 -0
  117. data/unittests/html/images/originaltriangle.jpg +0 -0
  118. data/unittests/html/images/plus.gif +0 -0
  119. data/unittests/html/images/square.jpg +0 -0
  120. data/unittests/html/images/triangle.jpg +0 -0
  121. data/unittests/html/images1.html +65 -0
  122. data/unittests/html/javascriptevents.html +33 -0
  123. data/unittests/html/link_pass.html +11 -0
  124. data/unittests/html/links1.html +37 -0
  125. data/unittests/html/links2.html +11 -0
  126. data/unittests/html/links_multi.html +12 -0
  127. data/unittests/html/list_matters.html +720 -0
  128. data/unittests/html/lists.html +18 -0
  129. data/unittests/html/map_test.html +30 -0
  130. data/unittests/html/modal_dialog.html +10 -0
  131. data/unittests/html/modal_dialog_launcher.html +12 -0
  132. data/unittests/html/multiple_specifiers.html +64 -0
  133. data/unittests/html/nestedFrames.html +6 -0
  134. data/unittests/html/new_browser.html +17 -0
  135. data/unittests/html/pass.html +13 -0
  136. data/unittests/html/popups1.html +59 -0
  137. data/unittests/html/pre.html +29 -0
  138. data/unittests/html/quirks_document_standards.html +8 -0
  139. data/unittests/html/radioButtons1.html +71 -0
  140. data/unittests/html/select_tealeaf.html +54 -0
  141. data/unittests/html/selectboxes1.html +52 -0
  142. data/unittests/html/simple_table.html +25 -0
  143. data/unittests/html/simple_table_buttons.html +104 -0
  144. data/unittests/html/simple_table_columns.html +75 -0
  145. data/unittests/html/table1.html +179 -0
  146. data/unittests/html/tableCell_using_xpath.html +19 -0
  147. data/unittests/html/table_and_tablerow_to_a.html +174 -0
  148. data/unittests/html/textarea.html +30 -0
  149. data/unittests/html/textfields1.html +100 -0
  150. data/unittests/html/textsearch.html +44 -0
  151. data/unittests/html/wallofcheckboxes.html +1003 -0
  152. data/unittests/html/xpath_nbsp.html +11 -0
  153. data/unittests/html/zeroindex.html +11 -0
  154. data/unittests/ie_exists_test.rb +16 -0
  155. data/unittests/ie_mock.rb +94 -0
  156. data/unittests/ie_test.rb +54 -0
  157. data/unittests/images_test.rb +156 -0
  158. data/unittests/images_xpath_test.rb +90 -0
  159. data/unittests/index_specifier_test.rb +31 -0
  160. data/unittests/js_events_test.rb +31 -0
  161. data/unittests/links_multi_test.rb +34 -0
  162. data/unittests/links_test.rb +131 -0
  163. data/unittests/links_xpath_test.rb +38 -0
  164. data/unittests/lists_test.rb +23 -0
  165. data/unittests/map_test.rb +98 -0
  166. data/unittests/minmax_test.rb +37 -0
  167. data/unittests/navigate_test.rb +38 -0
  168. data/unittests/nbsp_xpath_test.rb +16 -0
  169. data/unittests/no_wait_test.rb +28 -0
  170. data/unittests/non_core_tests.rb +12 -0
  171. data/unittests/other/all_tests_concurrent.rb +57 -0
  172. data/unittests/other/navigate_exception_test.rb +24 -0
  173. data/unittests/other/rexml_unit_test.rb +27 -0
  174. data/unittests/other/screen_capture_test.rb +53 -0
  175. data/unittests/other/testcase_method_order_test.rb +36 -0
  176. data/unittests/other/testcase_verify_test.rb +25 -0
  177. data/unittests/other/wait_until_test.rb +102 -0
  178. data/unittests/pagecontainstext_test.rb +69 -0
  179. data/unittests/parent_child_test.rb +27 -0
  180. data/unittests/perf_test.rb +20 -0
  181. data/unittests/pre_test.rb +49 -0
  182. data/unittests/radios_test.rb +181 -0
  183. data/unittests/radios_xpath_test.rb +100 -0
  184. data/unittests/security_setting_test.rb +24 -0
  185. data/unittests/selectbox_test.rb +144 -0
  186. data/unittests/selectbox_xpath_test.rb +102 -0
  187. data/unittests/setup.rb +69 -0
  188. data/unittests/speed_settings_test.rb +67 -0
  189. data/unittests/table_cell_using_xpath_test.rb +34 -0
  190. data/unittests/table_test.rb +296 -0
  191. data/unittests/table_xpath_test.rb +109 -0
  192. data/unittests/test_tests.rb +9 -0
  193. data/unittests/textarea_test.rb +92 -0
  194. data/unittests/textarea_xpath_test.rb +77 -0
  195. data/unittests/textfield_for_ch_char_test.rb +32 -0
  196. data/unittests/textfields_test.rb +184 -0
  197. data/unittests/textfields_xpath_test.rb +110 -0
  198. data/unittests/version_test.rb +15 -0
  199. data/unittests/win32ole_so_test.rb +35 -0
  200. data/unittests/window_tests.rb +10 -0
  201. data/unittests/windows/attach_to_existing_window_test.rb +52 -0
  202. data/unittests/windows/attach_to_new_window_test.rb +74 -0
  203. data/unittests/windows/close_window_test.rb +20 -0
  204. data/unittests/windows/frame_links_test.rb +23 -0
  205. data/unittests/windows/ie-each_test.rb +46 -0
  206. data/unittests/windows/modal_dialog_test.rb +95 -0
  207. data/unittests/windows/new_process_test.rb +24 -0
  208. data/unittests/windows/new_test.rb +58 -0
  209. data/unittests/windows/open_close_test.rb +19 -0
  210. data/unittests/windows/send_keys_test.rb +26 -0
  211. data/unittests/xpath_tests.rb +11 -0
  212. data/watir-rdoc.rb +7 -0
  213. metadata +370 -0
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <body>
3
+
4
+ <h4>An Unordered List:</h4>
5
+ <ul>
6
+ <li id='list1'>Coffee</li>
7
+ <li id='list2'>Tea</li>
8
+ <li id='list3'>Milk</li>
9
+ </ul>
10
+
11
+ <h4>An Ordered List:</h4>
12
+ <ol>
13
+ <li id='ordered1' name='x1'>Phil</li>
14
+ <li id='ordered2'>Bob</li>
15
+ <li id='ordered3'>Joe</li>
16
+ </ol>
17
+ </body>
18
+ </html>
@@ -0,0 +1,30 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>
4
+ Test page for map areas
5
+ </title>
6
+ Test Page for Map Tests<br><br>
7
+ <link rel="stylesheet" type="text/css" href="watir_unit_tests.css">
8
+ </head>
9
+ <body>
10
+ <br>
11
+ <br>
12
+ <table width="500px" border="0" cellspacing="0" cellpadding="0">
13
+ <tr>
14
+ <td valign="top" align="LEFT"><img SRC="images/map.GIF" USEMAP="#maptest01" BORDER="0"></td>
15
+ <map ID="maptestid01" NAME="maptest01">
16
+ <AREA SHAPE=RECT COORDS="12,150,140,20" HREF="pass.html" ALT="Pass" >
17
+ <AREA SHAPE=RECT COORDS="325,150,153,20" HREF="simple_table_buttons.html" ALT="Table Buttons" >
18
+ <AREA SHAPE=RECT COORDS="333,150,500,20" HREF="images1.html" ALT="Images" >
19
+ </map>
20
+ </tr>
21
+ <tr>
22
+ <td valign="top" align="LEFT"><img SRC="images/map2.gif" USEMAP="#maptest02" BORDER="0"></td>
23
+ <map ID="maptestid02" NAME="maptest02" custom="foo">
24
+ <AREA SHAPE=RECT COORDS="12,150,140,20" HREF="pass.html" ALT="Pass2" >
25
+ <AREA SHAPE=RECT COORDS="325,150,153,20" HREF="simple_table_buttons.html" ALT="Table Buttons2" >
26
+ <AREA SHAPE=RECT COORDS="333,150,500,20" HREF="images1.html" ALT="Images2" >
27
+ </map>
28
+ </tr>
29
+
30
+ </html>
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <head><title>Modal Dialog</title></head>
3
+
4
+ <body>
5
+ <p>Enter some text:</p>
6
+ <input type="text" name="modal_text" />
7
+ <input type="button" value="Close" onClick="javascript:window.returnValue=modal_text.value; window.close();"/>
8
+ <br/><button onClick="showModalDialog('pass.html');">Another Modal</button>
9
+ <br/><button onClick="showModalDialog('frame_buttons.html');">Modal with Frames</button>
10
+ </body></html>
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>Modal Browser Dialog Launcher</title>
4
+ </head>
5
+ <body>
6
+ <h1>Modal Browser Dialog Launcher</h1>
7
+ <input type = "button" value = "Launch Dialog" onclick = "javascript:document.all.modaloutput.value=window.showModalDialog('modal_dialog.html');"></input>
8
+ <br></br>
9
+ <p>Text from Modal:</p>
10
+ <input type = "text" name = "modaloutput"></input>
11
+ </body>
12
+ </html>
@@ -0,0 +1,64 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>
4
+ Test page for multiple specifiers
5
+ </title>
6
+ </head>
7
+ <body>
8
+ <form name="testform" class="one">
9
+ <input type="button" name="testbutton" class="one"/>
10
+ <input type="button" name="testbutton" class="two"/>
11
+
12
+ <input type="text" name="testtext_field" class="one"/>
13
+ <input type="text" name="testtext_field" class="two"/>
14
+
15
+ <input type="file" name="testfile_field" class="one"/>
16
+ <input type="file" name="testfile_field" class="two"/>
17
+
18
+ <input type="hidden" name="testhidden" class="one"/>
19
+ <input type="hidden" name="testhidden" class="two"/>
20
+
21
+ <input type="checkbox" name="testcheckbox" class="one"/>
22
+ <input type="checkbox" name="testcheckbox" class="two"/>
23
+
24
+ <input type="radio" name="testradio" class="one"/>
25
+ <input type="radio" name="testradio" class="two"/>
26
+
27
+ <select name="testselect_list" class="one">
28
+ </select>
29
+ <select name="testselect_list" class="two">
30
+ </select>
31
+ </form>
32
+
33
+ <form name="testform" class="two">
34
+ </form>
35
+
36
+ <a href="#" name="testlink" class="one"></a>
37
+ <a href="#" name="testlink" class="two"></a>
38
+
39
+ <img src="#" name="testimage" class="one"/>
40
+ <img src="#" name="testimage" class="two"/>
41
+
42
+ <div name="testdiv" class="one"></div>
43
+ <div name="testdiv" class="two"></div>
44
+
45
+ <span name="testelement" class="one"></span>
46
+ <span name="testelement" class="two"></span>
47
+
48
+ <table name="testtable" class="one">
49
+ <tr name="testrow" class="one">
50
+ <td name="testcell" class="one">
51
+ </td>
52
+ <td name="testcell" class="two">
53
+ </td>
54
+ </tr>
55
+ <tr name="testrow" class="two">
56
+ </tr>
57
+ </table>
58
+
59
+ <table name="testtable" class="two">
60
+ </table>
61
+
62
+ </body>
63
+ </html>
64
+
@@ -0,0 +1,6 @@
1
+ <!doctype html><head><title>Nested Frames</title></head>
2
+ <frameset cols=70,30 >
3
+
4
+ <frame src = iframeTest.html name = nestedFrame>
5
+ <frame src = blankpage.html name = nestedFrame2>
6
+ </frameset>
@@ -0,0 +1,17 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>New Browser Launcher</title>
4
+ <script language="JavaScript" type="">
5
+ function open_window_slowly(){
6
+ setTimeout("window.open('blankpage.html');", document.all.delay.value * 1000);
7
+ }
8
+ </script>
9
+ </head>
10
+ <body>
11
+ <h1>New Browser Launcher</h1>
12
+ <p>This link brings up a window marked "pass": <a href="pass.html" target="_blank">New Window</a></p>
13
+ <p>This link brings up a window marked "blank for frames" after a delay:
14
+ <span onclick="open_window_slowly();">New Window Slowly</span></p>
15
+ <p> Number of seconds to wait: <input type="text" name="delay" value="0.5"></input></p>
16
+ </body>
17
+ </html>
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>
4
+ Pass Page
5
+ </title>
6
+ </head>
7
+ <body>
8
+ PASS
9
+
10
+ <input type=button value="Close Window" onClick="javascript:window.close();">
11
+
12
+ </body>
13
+ </html>
@@ -0,0 +1,59 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>
4
+ Test page for pop ups
5
+ </title>
6
+
7
+ <script language = javascript>
8
+ function doConfirmBox() {
9
+ var a =confirm('Do you really want to do this');
10
+ if (a == true)
11
+ document.all.confirmtext.value = "OK"
12
+ else
13
+ document.all.confirmtext.value = "Cancel";
14
+ }
15
+
16
+ function doPromptBox() {
17
+ var a =prompt('Enter something delightful' , '');
18
+ if (a == null)
19
+ document.all.prompttext.value = "Cancel"
20
+ else
21
+ document.all.prompttext.value = a;
22
+ }
23
+
24
+
25
+ </script>
26
+
27
+ </head>
28
+ <body>
29
+ <br>
30
+ <br>
31
+ <table>
32
+
33
+ <tr>
34
+ <td>
35
+ <input type = button value = "Alert" onClick = "javascript:alert('This is an alert box');">This Button shows an alert pop up</q>
36
+ <br>
37
+
38
+ <tr>
39
+ <td>
40
+ <input type = button value = "Prompt" onClick= "javascript:doPromptBox();">This button shows a prompt pop up. This text box shows what text was entered <input type = text name = prompttext>
41
+
42
+ <br>
43
+ <tr>
44
+ <td>
45
+ <input type = button value = "Confirm" onClick= "javascript:doConfirmBox();">This button shows a prompt pop up. This text box shows which button was clicked <input type = text name = confirmtext>
46
+ <br>
47
+
48
+ <tr>
49
+ <td>
50
+ <input type = file name = up>This button shows a file upload box</q>
51
+ <br>
52
+
53
+
54
+ <tr>
55
+ <td>
56
+ </table>
57
+
58
+
59
+ </html>
@@ -0,0 +1,29 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>PRE tag tests</title>
4
+ </head>
5
+ <body>
6
+ Pre Tag Test
7
+ <br><br>
8
+ <pre id='1' name='1'>
9
+ This is a simple pre space
10
+
11
+ it should work well
12
+
13
+ just making sure
14
+ </pre>
15
+ <hr>
16
+ <pre id='2' name='2'>
17
+ <blockquote>
18
+ A second block
19
+ good to test with
20
+ </blockquote>
21
+ </pre>
22
+ <hr>
23
+ <pre id='3' name='3'>
24
+ this is the last block and it should
25
+ continue to work no matter what
26
+ </pre>
27
+ <p id='3' name='3'/>
28
+ </body>
29
+ </html>
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <head>
3
+ <title>IE8 document mode</title>
4
+ </head>
5
+ <body>
6
+ <input type=text name=quirks_text>
7
+ </body>
8
+ </html>
@@ -0,0 +1,71 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>
4
+ Test page for Radio Buttons
5
+ </title>
6
+ <link rel="stylesheet" type="text/css" href="watir_unit_tests.css">
7
+ <script>
8
+
9
+ function setButtonState( )
10
+ {
11
+ if (document.all.foo.disabled )
12
+ document.all.foo.disabled = false
13
+ else
14
+ document.all.foo.disabled = true
15
+ }
16
+ </script>
17
+
18
+ </head>
19
+ <body>
20
+ <br>
21
+ <br>
22
+ <table>
23
+ <tr>
24
+ <td>
25
+ Radio (using name) <input type = radio name = box1 class='radio_style'>
26
+ <br>
27
+ Radio (using id) <input type = radio id = box5>
28
+
29
+ <tr>
30
+ <td>
31
+ Disabled<input type = radio name = box2 disabled>
32
+
33
+ <tr>
34
+ <td>
35
+ Set<input type = radio name = box3 checked>
36
+
37
+ <tr>
38
+ <td>
39
+ <br>
40
+ <br>
41
+ These radios have the same name, but different values
42
+ <br>
43
+ Name = box4 value=1 <input type = radio name = box4 value = 1 checked>
44
+ <br>
45
+ Name = box4 value=2 <input type = radio name = box4 value = 2>
46
+ <br>
47
+ Name = box4 value=3 <input type = radio name = box4 value = 3>
48
+ <br>
49
+ Name = box4 value=4 <input type = radio name = box4 value = 4>
50
+ <br>
51
+ Name = box4 value=5 <input type = radio name = box4 value = 5 disabled title="box4-value5">
52
+
53
+
54
+ <tr>
55
+ <td>
56
+ Name = box5 value=1 Enable Button <input type = radio name = box5 value = 1 onClick='javascript:setButtonState( )'>
57
+ <br>Name = box5 value=2 Disable Button<input type = radio name = box5 value = 2 onClick='javascript:setButtonState( )'>
58
+
59
+
60
+ <tr>
61
+ <td>
62
+ <input type = button name = foo value = foo disabled><td> This button is used with radio box5. This button gets enabled/disabled on each click
63
+
64
+ <tr>
65
+ <td><input type = radio name="box6" value="Tea">Tea</td>
66
+ <td><input type = radio name="box6" value="Milk">Milk</td>
67
+ </tr>
68
+
69
+ </table>
70
+ </body>
71
+ </html>
@@ -0,0 +1,54 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <!doctype html>
3
+ <head>
4
+ </head>
5
+ <body>
6
+ I've been very happy to be able to start migrating from Incanica's ITP<br>
7
+ to Watir at work, but I've run into my first real problem. I have a<br>
8
+ select box defined thus:<br>
9
+ <br>
10
+ <select class="body" name="op_numhits">
11
+ <option value="0"> = </option>
12
+ <option value="1"> &lt;&gt; </option>
13
+ <option value="3"> &gt;= </option>
14
+ <option value="5"> &lt;= </option>
15
+ </select>
16
+ <br>
17
+ and I'm trying to choose the "&gt;=" option via the following code:<br>
18
+ <pre> $ie.selectBox( :name, "op_numhits" ).select( "&gt;=" )</pre>
19
+ (Aside: actually, what I write to define the task is XML adapted from
20
+ ITP's syntax, e.g.,<br>
21
+ <pre> &lt;browser_action entity="selectBox" entity_id_type="name" entity_id_value="op_numhits" action="select" param="&amp;gt;=" /&gt; </pre>
22
+ and our WebSiteTester Ruby class translates that into
23
+ Watir calls.)<br>
24
+ <br>
25
+ and the output I get from Watir is:<br>
26
+ <br>
27
+ Setting box op_numhits to &gt;= String<br>
28
+ comparing &gt;= to &aacute;=&aacute;&aacute;<br>
29
+ comparing &gt;= to &aacute;&lt;&gt;&aacute;<br>
30
+ comparing &gt;= to &aacute;&gt;=&aacute;<br>
31
+ comparing &gt;= to &aacute;&lt;=&aacute;<br>
32
+ <br>
33
+ <br>
34
+ While I just realized I could enhance our WebSiteTester class to be
35
+ able to pass Regexp's as well as Strings to the select() method, it
36
+ would also be nice to be able to specify the desired select option by
37
+ value (in my example, the value is "3").<br>
38
+ <hr><br>
39
+ Is it even possible for Watir to select something based on an attribute<br>
40
+ that's empty, like the first option of the select box below? I know I<br>
41
+ also have an issue given that I'm translating from an XML representation<br>
42
+ to a Ruby Watir call, and I'm probably getting a nil back from REXML<br>
43
+ when I ask for the value of an attribute that has nothing between the<br>
44
+ quotes....<br>
45
+ <br>
46
+ <select class="body" name="s_interest" id="s_interest">
47
+ <option value="" selected="Y"></option>
48
+ <option value="-1">Yes</option>
49
+ <option value="0">No</option>
50
+ </select>
51
+ <br>
52
+ <br>
53
+ </body>
54
+ </html>
@@ -0,0 +1,52 @@
1
+ <!doctype html>
2
+ <head>
3
+ <title>
4
+ Test page for select boxes
5
+ </title>
6
+ <link rel="stylesheet" type="text/css" href="watir_unit_tests.css">
7
+ </head>
8
+ <body>
9
+ <br>
10
+ <br>
11
+ <table>
12
+
13
+ <tr>
14
+ <td>
15
+ <select name = "sel1" class='list_style'>
16
+ <option value=o1 >Option 1
17
+ <option value=o2 >Option 2
18
+ <option value=o3 SELECTED >Option 3
19
+ <option value=o4 >Option 4
20
+ </select>
21
+ <tr>
22
+ <td>
23
+ <select name = sel2 multiple>
24
+ <option value=o1 >Option 1
25
+ <option value=o2 class='option_style'>Option 2
26
+ <option value=o3 class='option_style' SELECTED >Option 3
27
+ <option value=o4 class='option_style'>Option 4
28
+ <option value=o6 class='option_style'>Option 5
29
+ <option value=o6 class='option_style' SELECTED >Option 6
30
+
31
+
32
+ </form>
33
+
34
+ <tr>
35
+ <td>
36
+ <select name = sel3 onChange = 'javascript:document.location="pass.html";'>
37
+ <option value = o1>Option 1
38
+ <option value = o2>Option 2
39
+ <option value = o3 selected>Option 3
40
+ <option value = o4>Option 4
41
+ </select>
42
+
43
+ <td> This box is used for testing the onchange event
44
+
45
+ <tr>
46
+ <td><select id = 'selectbox_4' disabled><option value = o1>Option 1<option value = o2>Option 2
47
+
48
+ <td>This box has an id
49
+
50
+ </table>
51
+
52
+ </html>