selenium-rspec-dsl 1.0.2

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 (236) hide show
  1. data/common/shared/common.rb +167 -0
  2. data/config/aggregate_reports.rb +124 -0
  3. data/config/array_extension.rb +13 -0
  4. data/config/multi_process_behaviour_runner.rb +50 -0
  5. data/config/selenium-setup.rb +32 -0
  6. data/config/site_config.rb +8 -0
  7. data/sites/button.rb +31 -0
  8. data/sites/buttonAjax.rb +14 -0
  9. data/sites/buttonJQuery.rb +26 -0
  10. data/sites/buttonMultiWindow.rb +99 -0
  11. data/sites/buttonNonLoad.rb +11 -0
  12. data/sites/checkbox.rb +22 -0
  13. data/sites/checkboxExtjs.rb +10 -0
  14. data/sites/checkboxGwt.rb +24 -0
  15. data/sites/dropdown.rb +28 -0
  16. data/sites/dropdownAjax.rb +40 -0
  17. data/sites/dropdownExtjs.rb +32 -0
  18. data/sites/dropdownJQuery.rb +40 -0
  19. data/sites/dropdownLoad.rb +25 -0
  20. data/sites/element.rb +172 -0
  21. data/sites/form.rb +7 -0
  22. data/sites/image.rb +7 -0
  23. data/sites/label.rb +32 -0
  24. data/sites/link.rb +32 -0
  25. data/sites/linkMultiWindow.rb +160 -0
  26. data/sites/linkNonLoad.rb +11 -0
  27. data/sites/listbox.rb +16 -0
  28. data/sites/page.rb +16 -0
  29. data/sites/panel.rb +7 -0
  30. data/sites/radiobutton.rb +10 -0
  31. data/sites/tabPanel.rb +7 -0
  32. data/sites/table.rb +48 -0
  33. data/sites/tableExtjs.rb +42 -0
  34. data/sites/test/googleResults_screen.rb +15 -0
  35. data/sites/test/googleSearch_screen.rb +27 -0
  36. data/sites/textbox.rb +16 -0
  37. data/sites/tree.rb +7 -0
  38. data/sites/treeGwt.rb +32 -0
  39. data/spec/spec.opts +6 -0
  40. data/spec/spec_helper.rb +40 -0
  41. data/spec/test/testPass_spec.rb +36 -0
  42. data/spec/test/testPending_spec.rb +13 -0
  43. data/vendor/selenium-client-1.2.17/README.markdown +328 -0
  44. data/vendor/selenium-client-1.2.17/examples/rspec/google_spec.rb +41 -0
  45. data/vendor/selenium-client-1.2.17/examples/script/google.rb +25 -0
  46. data/vendor/selenium-client-1.2.17/examples/testunit/google_test.rb +39 -0
  47. data/vendor/selenium-client-1.2.17/lib/nautilus/shell.rb +32 -0
  48. data/vendor/selenium-client-1.2.17/lib/selenium.rb +14 -0
  49. data/vendor/selenium-client-1.2.17/lib/selenium/client.rb +27 -0
  50. data/vendor/selenium-client-1.2.17/lib/selenium/client/base.rb +118 -0
  51. data/vendor/selenium-client-1.2.17/lib/selenium/client/driver.rb +11 -0
  52. data/vendor/selenium-client-1.2.17/lib/selenium/client/extensions.rb +118 -0
  53. data/vendor/selenium-client-1.2.17/lib/selenium/client/generated_driver.rb +1711 -0
  54. data/vendor/selenium-client-1.2.17/lib/selenium/client/idiomatic.rb +488 -0
  55. data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_expression_builder.rb +116 -0
  56. data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/jquery.rb +13 -0
  57. data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/prototype.rb +13 -0
  58. data/vendor/selenium-client-1.2.17/lib/selenium/client/protocol.rb +96 -0
  59. data/vendor/selenium-client-1.2.17/lib/selenium/client/selenium_helper.rb +34 -0
  60. data/vendor/selenium-client-1.2.17/lib/selenium/command_error.rb +4 -0
  61. data/vendor/selenium-client-1.2.17/lib/selenium/protocol_error.rb +4 -0
  62. data/vendor/selenium-client-1.2.17/lib/selenium/rake/default_tasks.rb +16 -0
  63. data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_start_task.rb +70 -0
  64. data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_stop_task.rb +44 -0
  65. data/vendor/selenium-client-1.2.17/lib/selenium/rake/tasks.rb +6 -0
  66. data/vendor/selenium-client-1.2.17/lib/selenium/remote_control/remote_control.rb +33 -0
  67. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/file_path_strategy.rb +78 -0
  68. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/html_report.rb +123 -0
  69. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/selenium_test_report_formatter.rb +87 -0
  70. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/system_capture.rb +72 -0
  71. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/rspec_extensions.rb +96 -0
  72. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/spec_helper.rb +35 -0
  73. data/vendor/selenium-client-1.2.17/lib/tcp_socket_extension.rb +32 -0
  74. data/vendor/selenium-client-1.2.17/test/all_unit_tests.rb +3 -0
  75. data/vendor/selenium-grid-1.0.4/Capfile +107 -0
  76. data/vendor/selenium-grid-1.0.4/README +10 -0
  77. data/vendor/selenium-grid-1.0.4/Rakefile +190 -0
  78. data/vendor/selenium-grid-1.0.4/build.xml +182 -0
  79. data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Environments Demo Setup.svg +518 -0
  80. data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Machine Demo Setup.svg +371 -0
  81. data/vendor/selenium-grid-1.0.4/doc/resources/Rakefile +18 -0
  82. data/vendor/selenium-grid-1.0.4/doc/resources/Requesting a Specific Environment.svg +576 -0
  83. data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid Setup.svg +539 -0
  84. data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid.css +68 -0
  85. data/vendor/selenium-grid-1.0.4/doc/resources/Traditional Selenium Setup.svg +295 -0
  86. data/vendor/selenium-grid-1.0.4/doc/website/Rakefile +37 -0
  87. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup - Small.png +0 -0
  88. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup.png +0 -0
  89. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup - Small.png +0 -0
  90. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup.png +0 -0
  91. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment - Small.png +0 -0
  92. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment.png +0 -0
  93. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Logo.graffle +1015 -0
  94. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup - Small.png +0 -0
  95. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup.png +0 -0
  96. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup - Small.png +0 -0
  97. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup.png +0 -0
  98. data/vendor/selenium-grid-1.0.4/doc/website/faq.markdown +686 -0
  99. data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_osx_screenshot.png +0 -0
  100. data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_win_screenshot.png +0 -0
  101. data/vendor/selenium-grid-1.0.4/doc/website/images/background_better.png +0 -0
  102. data/vendor/selenium-grid-1.0.4/doc/website/images/background_feedback.png +0 -0
  103. data/vendor/selenium-grid-1.0.4/doc/website/images/background_participate.png +0 -0
  104. data/vendor/selenium-grid-1.0.4/doc/website/images/background_start_tracks.png +0 -0
  105. data/vendor/selenium-grid-1.0.4/doc/website/images/background_started.png +0 -0
  106. data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_osx_screenshot.png +0 -0
  107. data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_win_screenshot.png +0 -0
  108. data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_editing_osx_screenshot.png +0 -0
  109. data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_osx_screenshot.png +0 -0
  110. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-install.png +0 -0
  111. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-profile-update.png +0 -0
  112. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-verify.png +0 -0
  113. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-version.png +0 -0
  114. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-java-version.png +0 -0
  115. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-navigate-path.png +0 -0
  116. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-install.png +0 -0
  117. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-sanity-check.png +0 -0
  118. data/vendor/selenium-grid-1.0.4/doc/website/images/install/win/selenium-check.bmp +0 -0
  119. data/vendor/selenium-grid-1.0.4/doc/website/images/install_ant_osx_screenshot.png +0 -0
  120. data/vendor/selenium-grid-1.0.4/doc/website/images/installing_grid_osx_screenshot.png +0 -0
  121. data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_osx_screenshot.png +0 -0
  122. data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_win_screenshot.png +0 -0
  123. data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_osx_screenshot.png +0 -0
  124. data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_win_screenshot.png +0 -0
  125. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge-white.png +0 -0
  126. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge.png +0 -0
  127. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-large.png +0 -0
  128. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-small.png +0 -0
  129. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo.png +0 -0
  130. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium_grid_logo_large.png +0 -0
  131. data/vendor/selenium-grid-1.0.4/doc/website/images/update_path_win_screenshot.png +0 -0
  132. data/vendor/selenium-grid-1.0.4/doc/website/javascripts/shadedborder.js +267 -0
  133. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/document.css +82 -0
  134. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/faq.css +97 -0
  135. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/home.css +133 -0
  136. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/openqa.css +72 -0
  137. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/site.css +74 -0
  138. data/vendor/selenium-grid-1.0.4/examples/ec2/Capfile +276 -0
  139. data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.png +0 -0
  140. data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.svg +163 -0
  141. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/cloud.rb +35 -0
  142. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2.rb +7 -0
  143. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2_client.rb +54 -0
  144. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/hub.rb +22 -0
  145. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/remote_command.rb +47 -0
  146. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/server.rb +56 -0
  147. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/all_test.rb +2 -0
  148. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/cloud_test.rb +27 -0
  149. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/ec2_client_test.rb +137 -0
  150. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/hub_test.rb +24 -0
  151. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/remote_command_test.rb +46 -0
  152. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/server_test.rb +22 -0
  153. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/test_helper.rb +4 -0
  154. data/vendor/selenium-grid-1.0.4/examples/ec2/vnc_password +1 -0
  155. data/vendor/selenium-grid-1.0.4/examples/java/Java Example.iml +18 -0
  156. data/vendor/selenium-grid-1.0.4/examples/java/build.xml +90 -0
  157. data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.java +46 -0
  158. data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/ParisTest.java +50 -0
  159. data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/PerigordTest.java +42 -0
  160. data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.class +0 -0
  161. data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/ParisTest.class +0 -0
  162. data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/PerigordTest.class +0 -0
  163. data/vendor/selenium-grid-1.0.4/examples/java/testng-slow.xml +9 -0
  164. data/vendor/selenium-grid-1.0.4/examples/java/testng.xml +9 -0
  165. data/vendor/selenium-grid-1.0.4/examples/ruby/README +66 -0
  166. data/vendor/selenium-grid-1.0.4/examples/ruby/Rakefile +101 -0
  167. data/vendor/selenium-grid-1.0.4/examples/ruby/Ruby Example.iml +17 -0
  168. data/vendor/selenium-grid-1.0.4/examples/ruby/flickr_example.rb +16 -0
  169. data/vendor/selenium-grid-1.0.4/examples/ruby/lib/array_extension.rb +13 -0
  170. data/vendor/selenium-grid-1.0.4/examples/ruby/lib/multi_process_behaviour_runner.rb +28 -0
  171. data/vendor/selenium-grid-1.0.4/examples/ruby/paris_spec.rb +34 -0
  172. data/vendor/selenium-grid-1.0.4/examples/ruby/perigord_spec.rb +22 -0
  173. data/vendor/selenium-grid-1.0.4/examples/ruby/spec_helper.rb +59 -0
  174. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_page_screenshot.png +0 -0
  175. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_system_screenshot.png +0 -0
  176. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_page_screenshot.png +0 -0
  177. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_system_screenshot.png +0 -0
  178. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_page_screenshot.png +0 -0
  179. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_system_screenshot.png +0 -0
  180. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_page_screenshot.png +0 -0
  181. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_system_screenshot.png +0 -0
  182. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_page_screenshot.png +0 -0
  183. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_system_screenshot.png +0 -0
  184. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_page_screenshot.png +0 -0
  185. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_system_screenshot.png +0 -0
  186. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_page_screenshot.png +0 -0
  187. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_system_screenshot.png +0 -0
  188. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_page_screenshot.png +0 -0
  189. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_system_screenshot.png +0 -0
  190. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_page_screenshot.png +0 -0
  191. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_system_screenshot.png +0 -0
  192. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_page_screenshot.png +0 -0
  193. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_system_screenshot.png +0 -0
  194. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_page_screenshot.png +0 -0
  195. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_system_screenshot.png +0 -0
  196. data/vendor/selenium-grid-1.0.4/grid_configuration.yml +46 -0
  197. data/vendor/selenium-grid-1.0.4/lib/build/common-build.xml +228 -0
  198. data/vendor/selenium-grid-1.0.4/lib/ruby/file_extensions.rb +9 -0
  199. data/vendor/selenium-grid-1.0.4/lib/ruby/java/classpath.rb +28 -0
  200. data/vendor/selenium-grid-1.0.4/lib/ruby/java/vm.rb +31 -0
  201. data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/hub.rb +29 -0
  202. data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/remote_control.rb +40 -0
  203. data/vendor/selenium-grid-1.0.4/lib/ruby/tcp_socket_extensions.rb +23 -0
  204. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-1.0.4.jar +0 -0
  205. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-standalone-1.0.4.jar +0 -0
  206. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-1.0.4.jar +0 -0
  207. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-standalone-1.0.4.jar +0 -0
  208. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-1.0.4.jar +0 -0
  209. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-standalone-1.0.4.jar +0 -0
  210. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-1.0.4.jar +0 -0
  211. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-standalone-1.0.4.jar +0 -0
  212. data/vendor/selenium-grid-1.0.4/lib/testng.policy +11 -0
  213. data/vendor/selenium-grid-1.0.4/log/test.txt +1 -0
  214. data/vendor/selenium-grid-1.0.4/project.properties +4 -0
  215. data/vendor/selenium-grid-1.0.4/sample-scripts/kill-rcs.sh +3 -0
  216. data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rc.sh +4 -0
  217. data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rcs.sh +5 -0
  218. data/vendor/selenium-grid-1.0.4/sample-scripts/launch-remote-controls.rb +20 -0
  219. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/Command line test.html +218 -0
  220. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/classes.html +44 -0
  221. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/groups.html +5 -0
  222. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/index.html +6 -0
  223. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/main.html +2 -0
  224. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-alphabetical.html +12 -0
  225. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-not-run.html +2 -0
  226. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods.html +12 -0
  227. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/reporter-output.html +1 -0
  228. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/testng.xml.html +1 -0
  229. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/toc.html +30 -0
  230. data/vendor/selenium-grid-1.0.4/target/reports/emailable-report.html +117 -0
  231. data/vendor/selenium-grid-1.0.4/target/reports/index.html +9 -0
  232. data/vendor/selenium-grid-1.0.4/vendor/commons-logging-1.0.4.jar +0 -0
  233. data/vendor/selenium-grid-1.0.4/vendor/selenium-java-client-driver-1.0.1.jar +0 -0
  234. data/vendor/selenium-grid-1.0.4/vendor/selenium-server-1.0.3.jar +0 -0
  235. data/vendor/selenium-grid-1.0.4/vendor/testng-5.7-jdk15.jar +0 -0
  236. metadata +296 -0
@@ -0,0 +1,686 @@
1
+ Title: Selenium Grid FAQ
2
+ CSS: stylesheets/site.css stylesheets/document.css stylesheets/faq.css
3
+ Use numbered headers: false
4
+
5
+ <div class="header">
6
+ <a href="index.html"><img alt="Selenium_grid_logo_large" src="images/selenium-grid-logo-large.png"/></a>
7
+ <p>FAQ</p>
8
+ </div>
9
+
10
+ Table Of Content:
11
+ {: class=toc}
12
+
13
+ * This will become a table of contents (this text will be scraped).
14
+ {:toc}
15
+
16
+ General
17
+ =======
18
+
19
+ Would you recommend using Selenium Grid for performance/Load testing?
20
+ ---------------------------------------------------------------------
21
+
22
+ Selenium Grid is not designed for performance and load testing, but very
23
+ efficient web acceptance/functional testing. The main reason for this is
24
+ that conducting performance/load testing with real browser is a pretty bad
25
+ idea as it is hard/expensive to scale the load and the actual load is very
26
+ inconsistent.
27
+
28
+ For load/performance testing I would advise using tools like JMeter, Grinder
29
+ or httperf. What you can do though, is reuse your selenium tests to record
30
+ the use cases you will use for your load testing. If you really want to
31
+ conduct load testing with Selenium, check out [Browser Mob](http://browsermob.com/welcome).
32
+
33
+ To simulate 200 concurrent users for instance, you would need 200 concurrent
34
+ browsers with a load testing framework based on Selenium Grid. Even if you
35
+ use Firefox on Linux (so the most efficient setup) you will probably need at
36
+ least 10 machines to generate that kind of load. Quite insane when
37
+ JMeter/Grinder/httperf can generate the same kind of load with a single
38
+ machine.
39
+
40
+ Installing
41
+ ==========
42
+
43
+ Do you have step by step, "assume I am an idiot", installation instructions?
44
+ ------------------------------------------------------------------------------
45
+
46
+ First if you are trying out Selenium Grid you are certainly *not* an idiot. ;-)
47
+ Second, yes we do have step by step installation instructions, check out:
48
+
49
+ * [Step by Step Installation Instructions for Windows](./step_by_step_installation_instructions_for_windows.html)
50
+ * [Step by Step Installation Instructions for Mac OS X](./step_by_step_installation_instructions_for_osx.html)
51
+
52
+
53
+ Running the Demo
54
+ ================
55
+
56
+ Tests Are Failing When I Run the Demo. How can I troubleshoot the problem?
57
+ --------------------------------------------------------------------------
58
+
59
+ > I started the Hub on the UNIX machine and then I've created 2
60
+ > remote controls on a Window laptop. This part worked and I can see the
61
+ > Hub console listing the 2 remote controls.
62
+ > When I start `ant run-demo-in-parallel` on the UNIX box, however, the
63
+ > following error appears:
64
+ >
65
+ [java] ===============================================
66
+ [java] Selenium Grid Demo In Parallel
67
+ [java] Total tests run: 4, Failures: 4, Skips: 0
68
+ [java] ===============================================
69
+ >
70
+ > How can I investigate the problem?
71
+
72
+ Here are a few things you can do to try to understand what is going on:
73
+
74
+ * Look at the TestNG report under `target/reports/index.html` on the test
75
+ runner machine (the UNIX one in your case), looking for the actual error
76
+ messages / stack traces.
77
+
78
+ * Check the Hub and remote control logs under the `log/` directory
79
+
80
+ * Look at the Windows machine where the remote controls are running: Are the
81
+ remote controls logging any command at all? Are browsers popping up at
82
+ least? Take a good look at the Selenium Remote Control logs while the tests
83
+ are running.
84
+
85
+ If the remote controls on the Windows machine are not even contacted, this
86
+ is most likely to be a setting/network/browser configuration problem. Check
87
+ the way you launched the hub and the remote controls, as well as your
88
+ network.
89
+
90
+ If the remote controls on the windows machine are contacted but fail to run
91
+ the tests properly, this is probably just a problem on the local machine.
92
+ Try to run Selenium Grid demo exclusively on this machine (or any Selenium
93
+ Test you have) to understand the nature of the problem in a less complex
94
+ environment.
95
+
96
+ If finding the actual problem still end up being hard, please
97
+ [post a message in the Selenium Grid forum](http://clearspace.openqa.org/community/selenium/advanced)
98
+ with precise information on:
99
+
100
+ * The O.S. and browser combination that you are using
101
+ * Whether you see browsers popping up or not
102
+ * A screenshot of the Hub console before you launch the tests
103
+ (The console can usually be accessed at http://localhost:4444/console
104
+ on the machine running the Hub)
105
+ * The test client side errors (TestNG reports)
106
+ * Selenium Grid Hub logs (`log/hub.log`)
107
+ * Remote Control logs (`log/rc-*.log`)
108
+
109
+
110
+ Running the Demo Using a Different Browser
111
+ ------------------------------------------
112
+
113
+ > When i run the selenium grid demo then all remote control by default launched Firefox.
114
+ > so how and where could I update the browser name incase of Selenium Grid.
115
+
116
+
117
+ Here is how you would do to run the demo with the Safari web browser for instance.
118
+
119
+ Launch the Hub the standard way:
120
+
121
+ ant launch-hub
122
+
123
+ Launch a remote control declaring that it provides the Safari environment:
124
+
125
+ ant -Denvironment="*safari" launch-remote-control
126
+
127
+ Launch the other remote controls the same way:
128
+
129
+ ant -Denvironment="*safari" -Dport=5556 launch-remote-control
130
+ ant -Denvironment="*safari" -Dport=5557 launch-remote-control
131
+
132
+ Launch the demo overriding the browser system property:
133
+
134
+ ant -Dbrowser="*safari" run-demo-in-parallel
135
+
136
+ Voila! you're done!
137
+
138
+ If you are using Ruby automation (power to you), you can also achieve the
139
+ same thing easily:
140
+
141
+ Launch the Hub the standard way:
142
+
143
+ rake hub:start
144
+
145
+ Launch the remote controls declaring that they provides the Safari environment:
146
+
147
+ rake rc:start_all ENVIRONMENT=*safari
148
+
149
+ Launch the demo overriding the browser system property:
150
+
151
+ ant -Dbrowser="*safari" run-demo-in-parallel
152
+
153
+
154
+ Customizing Selenium Grid
155
+ =========================
156
+
157
+ Can I change the version of Selenium RC used by the Grid?
158
+ ---------------------------------------------------------
159
+
160
+ Every remote control that you launch with `ant launch-remote-control` or
161
+ `rake rc:start` is using the first Selenium Remote Control standalone jar
162
+ packaged in the `vendor` directory whose name matches `selenium-server-*.jar`.
163
+
164
+ To use your own version of Selenium Remote Control, just
165
+ delete the `vendor/selenium-server-*.jar` file that comes with Selenium
166
+ Grid distribution and replace it any standalone Remote Control jar that
167
+ you fancy! This technique is especially useful to workaround
168
+ regressions in Remote Control nightly builds...
169
+
170
+ Analysing Failures
171
+ ==================
172
+
173
+
174
+ When we test the application with Selenium Grid, we get nondeterministic results
175
+ --------------------------------------------------------------------------------
176
+
177
+ > Locally, when we test the application with Selenium Grid, we get
178
+ > nondeterministic results. Tests seem to fail randomly. Messing with the
179
+ > number of nodes in the grid seems to help, but its really annoying that we
180
+ > can't seem to get consistent results.
181
+
182
+ Most likely some tests are timing out in a non-deterministic manner because
183
+ your CPU or Network is over-utilized. Monitor your CPU and Network activity on
184
+ all the machines involved. Once you find the bottleneck launch fewer
185
+ processes. For instance if your load average is way higher than the number of
186
+ CPUs on the machine running the remote controls, cut the number of remote
187
+ controls you launch by two until you get to a sustainable machine load.
188
+
189
+ Make sure you spend some time figuring out the optimal number of
190
+ concurrent test runners and remote controls to run in parallel on each
191
+ machine, before deploying a Selenium Grid infrastructure your organization
192
+ is going to depend on.
193
+
194
+
195
+ Managing the Hub and the Remote Controls
196
+ =========================================
197
+
198
+ How can I shutdown Selenium Grid Hub?
199
+ -------------------------------------
200
+
201
+ If you are using the rake task provided with Selenium Grid you can just
202
+ run:
203
+
204
+ rake hub:stop
205
+
206
+ If Rake is not an option or you want to hook your instrumentation logic
207
+ you can also shutdown the Hub with a single HTTP request. You need to
208
+ submit a POST request to the Hub targeting `/lifecycle-manager` with a
209
+ parameter `action=shutdown`. For instance if the Hub is running on
210
+ `localhost` on port `4444` you could shut it down with:
211
+
212
+ curl -d action=shutdown http://localhost:4444/lifecycle-manager
213
+
214
+ or
215
+
216
+ wget --post-data action=shutdown action=shutdown http://localhost:4444/lifecycle-manager
217
+
218
+
219
+ How can I pass additional parameters to the Remote Controls when starting them as part of Selenium Grid?
220
+ --------------------------------------------------------------------------------------------------------
221
+
222
+ Additional parameters can be passed to Selenium remote controls at startup
223
+
224
+ Just set the `seleniumArgs` Java property when launching the remote control.
225
+ For instance, to start a remote control in multi window and debug mode you
226
+ would use:
227
+
228
+ ant -DseleniumArgs="-multiWindow -debug" launch-remote-control
229
+
230
+ Of course you can also achieve the same thing with the Rake task:
231
+
232
+ rake hub:start SELENIUM_ARGS="-multiWindow -debug"
233
+
234
+
235
+ How can I use the `-firefoxProfileTemplate` option on Windows?
236
+ --------------------------------------------------------------
237
+
238
+ On OS X or UNIX, you can use a custom Firefox profile with Selenium
239
+ Grid by launching the remote controls with the `-firefoxProfileTemplate`
240
+ option:
241
+
242
+ ant -DseleniumArgs="-firefoxProfileTemplate /path/to/my_profile" launch-remote-control
243
+
244
+ On Windows figuring out the right path to provide for your profile
245
+ can be confusing espcially if you file path contains spaces
246
+ (like `\Documents and Settings`). Just make sure you are
247
+ providing the short filename (visible with a `dir /x`) and everything
248
+ will be fine.
249
+
250
+ I need to run the Hub and Remote Control in background.... How can I do it?
251
+ ------------------------------------------------------------------------
252
+
253
+ On UNIX you just add a ampersand at the end of the command line. See:
254
+
255
+ * [Working with the UNIX shell](http://www.washington.edu/computing/unix/startdoc/shell.html)
256
+ * [`nohup`](http://en.wikipedia.org/wiki/Nohup)
257
+
258
+ On Windows you can use "start /wait/ /b" : Check out the [`start` command reference](http://www.ss64.com/nt/start.html) for more details.
259
+
260
+ This said, if you are running on a UNIX platform or Mac OS X, the
261
+ easiest way to start the Hub and Remote Controls is to use the Rake
262
+ tasks that come with Selenium Grid distribution.
263
+ `cd` to the root of the Selenium distribution and type:
264
+
265
+ rake hub:start BACKGROUND=true
266
+
267
+ Which will launch the hub in the background. You can then launch
268
+ remote controls in the background with:
269
+
270
+ rake rc:start PORT=4445 BACKGROUND=true
271
+
272
+ In practice, it is actually easier to launch the hub and all
273
+ the remote controls in the background with a single command:
274
+
275
+ rake all:start
276
+
277
+ Of course you can also stop them all in a similar way:
278
+
279
+ rake all:start
280
+
281
+ When starting Firefox I get: java java.lang.RuntimeException: Firefox refused shutdown while preparing a profile"
282
+ ------------------------------------------------------------------------------------------------------------------
283
+
284
+ > Here is my log on this error:
285
+ > ...
286
+ > java Caused by: org.seleniumhq.selenium.server.browserlaunchers.FirefoxChromeLauncher$FileLockRemainedException: Lock file still present! C:\DOKUME1\Semadou\LOKALE1\Temp\customProfileDir9d4a3879bb7d4ca5b75dbbb488ec30b1\parent.lock
287
+
288
+
289
+ Sometimes Selenium Remote Control does not stop Firefox properly on Windows
290
+ and things get very messy (leaving lock files behind). This does happen when
291
+ you Ctrl-C while running the test suite for instance.
292
+
293
+ If you encounter this problem, I would advise you to:
294
+
295
+ * Kill all running Firefox instances and make sure that there is no Firefox process in the task manager (or even better reboot)
296
+ * Delete all the directories: `C:\DOCUME1\<your login>\LOCALS1\Temp\customProfileDir*`
297
+ * While you are at it cleanup `C:\DOCUME1\<your login>\LOCALS1\Temp as much as possible`
298
+ * Run your tests or the demo again
299
+
300
+ Why do I have duplicate entries in the Hub after restarting my Remote Controls?
301
+ ------------------------------------------------------------------------
302
+
303
+ > Say I have a hub setup with three RCs ready and waiting, and then I
304
+ > go and restart those RCs, my hub now shows 6 RCs even though there are
305
+ > actually only 3. Is this anything to worry about? Will the hub try
306
+ > to send requests to the "dead" entries? Do I have to restart the hub
307
+ > every time I need to restart and RC?
308
+
309
+ You are probably stopping the remote controls a little too "harshly"? For
310
+ instance, if you do a `kill -9` or use Windows task manager, the JVM shutdown
311
+ hook does not have a chance to unregister the remote control and the Hub
312
+ does not realize that the remote control is gone.
313
+
314
+ But if you stop the remote control in a more "civil" manner everything should
315
+ be fine (e.g. `kill` or using the shutdown method in selenium client api).
316
+ Even better use the Rake tasks provided with Selenium Grid distribution:
317
+ `rake rc:start_all` and `rake rc:stop_all` multiple times on my machine.
318
+
319
+ If you end up in this state I do recommend that you restart the Hub which
320
+ would otherwise end up in a "non predictable state". Future releases of
321
+ Selenium Grid will take care of this problem transparently, but for now a
322
+ restart is safer.
323
+
324
+ Can I configure the Remote Control to use a custom HTTP/HTTPS proxy?
325
+ --------------------------------------------------------------------
326
+
327
+ To use custom http proxy settings set the `http.proxyHost` and the
328
+ `http.proxyPort` java system properties when starting the remote
329
+ controls and the hub.
330
+
331
+ For instance:
332
+
333
+ ant -Dhttp.proxyHost=my_proxy.my_company.com -Dhttp.proxyPort=3128 launch-hub
334
+ ant -Dhttp.proxyHost=my_proxy.my_company.com -Dhttp.proxyPort=3128 launch-remote-control
335
+
336
+ Note that the JVM use different properties for http and https
337
+ proxies. So if you also want to use the same proxy for http *and* https
338
+ you need to use:
339
+
340
+ ant -Dhttp.proxyHost=my_proxy.my_company.com -Dhttp.proxyPort=3128 \
341
+ -Dhttps.proxyHost=my_proxy.my_company.com -Dhttps.proxyPort=3128 \
342
+ launch-hub
343
+
344
+ ant -Dhttp.proxyHost=my_proxy.my_company.com -Dhttp.proxyPort=3128 \
345
+ -Dhttps.proxyHost=my_proxy.my_company.com -Dhttps.proxyPort=3128 \
346
+ launch-remote-control
347
+
348
+ Running the Examples Included in Selenium Grid Distribution
349
+ ===========================================================
350
+
351
+ How to run the Java example?
352
+ ----------------------------
353
+
354
+ 1. Go to the root directory of your Selenium Grid distribution
355
+
356
+ 2. Launch Selenium Grid Hub and 4 remote controls as explained in
357
+ ["Run the Demo"](http://selenium-grid.seleniumhq.org/run_the_demo.html)
358
+
359
+ 3. Go to the Java example directory: `cd ./examples/java`
360
+
361
+ 4. Launch the tests with: `ant run`
362
+
363
+ How to Run the Ruby Example?
364
+ ----------------------------
365
+
366
+ 1. Go to the root directory of your Selenium Grid distribution
367
+
368
+ 2. (Re)start Selenium Grid Hub and the remote controls with:
369
+ `rake all:restart`
370
+
371
+ 3. Go to the Ruby example directory: `cd ./examples/ruby`
372
+
373
+ 4. Launch the tests with: `rake tests:run_in_parallel`
374
+
375
+
376
+ The Ruby Example Does Not Seem to Work on Windows!
377
+ --------------------------------------------------
378
+
379
+ > When running the Ruby example on Windows I get:
380
+ >
381
+ > `[DeepTest] Started DeepTest service at druby://0.0.0.0:6969
382
+ > c:/ruby/lib/ruby/gems/1.8/gems/deep_test-1.2.2/lib/deep_test.rb:15:in fork: the fork() function is unimplemented on this machine (NotImplementedError)`
383
+
384
+ This is expected. The Ruby example will *not* work on Windows.
385
+
386
+ The Ruby example demonstrates best practices for high ROI in-browser web
387
+ testing in Ruby. As a consequence it relies on
388
+ [DeepTest](http://deep-test.rubyforge.org), the best parallel and distributed
389
+ test runner available for Ruby. In turns, DeepTest make extensive use of
390
+ `Kernel.fork()`... which is not implemented on Windows.
391
+
392
+ This is not really a problem as the Ruby community has widely embraced the
393
+ Mac OS X and UNIX platforms which provide a far better environment to
394
+ execute your tests. Besides, with Selenium Grid (or Selenium RC) it is very
395
+ simple to run your tests on UNIX while driving a web browser running on
396
+ Windows. So there is no need to run your tests on Windows to test a Windows'
397
+ browser. Consequently I strongly advise to always run your tests on Linux or
398
+ Mac OS X and just target a Selenium RC running on a Windows platform when
399
+ you need to test Internet Explorer. You will also save yourself a lot of
400
+ headaches as very few Ruby users run on Windows anyway...
401
+
402
+
403
+ Running the Ruby Example Using a Different Browser
404
+ --------------------------------------------------
405
+
406
+ Here is how you would do to run the Ruby example with the Safari web browser for instance.
407
+
408
+ Launch the Hub the standard way (from the root of Selenium Grid distribution):
409
+
410
+ rake hub:start
411
+
412
+ Launch a bunch of remote controls declaring that they provides the Safari environment:
413
+
414
+ rake rc:start_all ENVIRONMENT=*safari
415
+
416
+ Launch the tests overriding the browser environment variable:
417
+
418
+ cd examples/ruby
419
+ rake tests:run_in_parallel SELENIUM_RC_BROWSER="*safari"
420
+
421
+ Voila! you're done!
422
+
423
+
424
+ Running Your Tests Against Selenium Grid
425
+ ========================================
426
+
427
+ I have some test cases and I want to run them against Selenium Grid, what do I need to do?
428
+ ------------------------------------------------------------------------------------------
429
+
430
+ The idea is that all you have to do to take advantage of the Selenium Grid
431
+ is to point your Selenium client driver to the Hub and run your tests in
432
+ parallel.
433
+
434
+ ### Java ###
435
+
436
+ If you writing your tests using Java, the best is to run your
437
+ tests with [TestNG parallel runner](http://testng.org/doc/documentation-main.html#parallel-running).
438
+
439
+ You can find a concrete example on
440
+ how this can be achieved in the standard Selenium Grid distribution under
441
+ the [`examples/java`](http://svn.seleniumhq.org/svn/selenium-grid/trunk/examples/java/)
442
+ directory.
443
+
444
+ ### Ruby ###
445
+
446
+ If you use Ruby, the best is to use
447
+ [DeepTest](http://deep-test.rubyforge.org) which can even distribute the test run
448
+ accross multiple machines.
449
+
450
+ You can find a concrete example (a nice test reports) on
451
+ how this can be achieved in the standard Selenium Grid distribution under
452
+ the [`examples/ruby`](http://svn.seleniumhq.org/svn/selenium-grid/trunk/examples/ruby/)
453
+ directory.
454
+
455
+ ### Python ###
456
+
457
+ I have no experience in Python so I do not know what the best solution is.
458
+ Nevertheless, I can give you the theory and some starting points.
459
+
460
+ Basically you need to come up with a way to run your python tests in
461
+ parallel. How exactly you achieve this usually depends on your testing
462
+ framework and programming language of choice. I am not personally aware of
463
+ any parallel test runner for Python but a little Googling found the
464
+ following starting points that you could investigate:
465
+
466
+ * [`py.test` distributed testing section](https://codespeak.net/py/dist/test.html#automated-distributed-testing)
467
+ * [Parallel Python](http://www.parallelpython.com/)
468
+ * [Testoob](http://testoob.sourceforge.net/features.html)
469
+ * [Mailing list archive on parallel testing in Python](http://lists.idyll.org/pipermail/testing-in-python/2007-December/thread.html#463)
470
+
471
+ If none of this is helpful, worst case scenario, you can also write your own
472
+ parallel test runner by launching multiple processes targeting different
473
+ test file sets and checking the process exit statuses. Not the most
474
+ elegant/efficient way, but that can get you started. This is actually the
475
+ way I originally started with Ruby and you can find an example on how this
476
+ worked in the Ruby example included in Selenium Grid distribution:
477
+
478
+ [`examples/ruby/lib/multi_process_behaviour_runner.rb`](http://svn.seleniumhq.org/svn/selenium-grid/trunk/examples/ruby/lib/multi_process_behaviour_runner.rb)
479
+
480
+ You launch the whole thing with:
481
+
482
+ #
483
+ # Legacy way to drive tests in parallel before DeepTest RSpec support.
484
+ # Kept to document a simple way to run the tests in parallel for non-Ruby
485
+ # platforms.
486
+ #
487
+ desc("[DEPRECATED] Run all behaviors in parallel spawing multiple
488
+ processes. DeepTest offers a better alternative.")
489
+ task :'tests:run_in_parallel:multiprocess' => :create_report_dir do
490
+ require File.expand_path(File.dirname(__FILE__) +
491
+ '/lib/multi_process_behaviour_runner')
492
+ runner = MultiProcessSpecRunner.new(10)
493
+ runner.run(Dir['*_spec.rb'])
494
+ end
495
+
496
+ Good luck in your quest for the ultimate Python parallel test runner. Please
497
+ [contact me](http://ph7spot.com/about/contact_me) if you figure out the best
498
+ solution for Python, I will put it in the documentation. Even better,
499
+ send me an example, I will include it in Selenium Grid distribution.
500
+
501
+ ### .Net ###
502
+
503
+ I have no expertise in .Net but [Gallio](http://www.gallio.org/)
504
+ seems to be able to [run tests in parallel](http://igorbrejc.net/development/continuous-integration/gallio-running-tests-in-parallel)
505
+
506
+ ### Other ###
507
+
508
+ To take advantage of Selenium Grid power, you need to come up with a way to
509
+ run your tests in parallel. How exactly you achieve this usually depends on
510
+ your testing framework and programming language of choice. Try
511
+ googling around for a parallel or distributed test runner for your language.
512
+
513
+ If you cannot find any, your fallback plan is to write your own parallel
514
+ test runner by launching multiple processes targeting different test file
515
+ sets and checking the process exit statuses. Not the most elegant/efficient
516
+ way, but that can get you started. This is actually the way I originally
517
+ started with Ruby and you can find an example on how this worked in the Ruby
518
+ example included in Selenium Grid distribution:
519
+
520
+ [`examples/ruby/lib/multi_process_behaviour_runner.rb`](http://svn.seleniumhq.org/svn/selenium-grid/trunk/examples/ruby/lib/multi_process_behaviour_runner.rb)
521
+
522
+ You launch the whole thing with:
523
+
524
+ #
525
+ # Legacy way to drive tests in parallel before DeepTest RSpec support.
526
+ # Kept to document a simple way to run the tests in parallel for non-Ruby
527
+ # platforms.
528
+ #
529
+ desc("[DEPRECATED] Run all behaviors in parallel spawing multiple
530
+ processes. DeepTest offers a better alternative.")
531
+ task :'tests:run_in_parallel:multiprocess' => :create_report_dir do
532
+ require File.expand_path(File.dirname(__FILE__) +
533
+ '/lib/multi_process_behaviour_runner')
534
+ runner = MultiProcessSpecRunner.new(10)
535
+ runner.run(Dir['*_spec.rb'])
536
+ end
537
+
538
+ Good luck in your quest for the ultimate parallel test runner for your
539
+ favorite language. Please [contact me](http://ph7spot.com/about/contact_me) if you
540
+ figure out the best solution for your language, I will put it in the documentation.
541
+ Even better, send me an example, I will include it in Selenium Grid
542
+ distribution.
543
+
544
+ Is there a way to generate test reports using Selenium?
545
+ -------------------------------------------------------
546
+
547
+ The short answer is that yes you can generate test reports with Selenium.
548
+ How to achieve this (and their exact format) will however depend on the
549
+ programming language and test runner you are using (for instance
550
+ `JUnit`, `TestNG`, `Test::Unit` or `RSpec`).
551
+
552
+ You can look at the [`examples/ruby`](http://svn.seleniumhq.org/svn/selenium-grid/trunk/examples/ruby/)
553
+ directory in the Selenium Grid
554
+ distribution to see how you can use RSpec and Selenium to generate reports
555
+ which [include HTML capture and OS screenshots when a test
556
+ fail](http://ph7spot.com/examples/rspec_report/index.html).
557
+
558
+ My test cases are in HTML (Selenese), how can I run those against Selenium Grid ?
559
+ ------------------------------------------------------------------
560
+
561
+ You would need a parallel test runner for Selenium Grid.
562
+
563
+ I might eventually end up working on such a parallel test runner for HTML
564
+ test suites, nevertheless my time is limited and this feature is quite low
565
+ in my priority list: in my experience HTML test suites are a nightmare
566
+ to maintain you are better off writing and refactoring real code by the time
567
+ your test suite grows big enough that it takes too long to run.
568
+
569
+ This said, there might be hope as some guys seem to be working on it though: see
570
+ [this thread](http://clearspace.openqa.org/thread/11482)
571
+
572
+ Here are more details on why this feature is not high on my priority list:
573
+
574
+ 1. I write all my tests using a full-featured programming language
575
+ (not HTML) because I believe that it is a far better approach
576
+ to in-browser testing -- especially when it come to maintenance.
577
+
578
+ 2. If you have enough tests to feel the need for Selenium Grid,
579
+ then test maintenance should matter to you... and using HTML test
580
+ cases is not going to help!
581
+
582
+ 3. I have limited development cycles and work on Selenium grid in my
583
+ free time. There a lot of other features to work on that are more
584
+ important to me and my teams.
585
+
586
+ 4. Selenium Grid is an open-source project. If this running HTML tests
587
+ in parallel is important enough to a large number of users, somebody
588
+ will write a patch that I will be glad to incorporate it in the codebase.
589
+
590
+
591
+ My test is not working when I use HTTPS!
592
+ ----------------------------------------
593
+
594
+ Selenium and Selenium Grid support HTTPS out-of-the-box. Just make sure
595
+ you are using one of the "privileged" browser modes,
596
+ namely `*chrome`, `*hta` and `*safari`.
597
+
598
+ How can I avoid SSL certificate popups?
599
+ ---------------------------------------
600
+
601
+ First make sure you are using a priviledged browser mode
602
+ (namely `*chrome`, `*hta` or `*safari`).
603
+
604
+ The generic solution is to accept the Certificate manually the first
605
+ time and run the test again. For Firefox the solution is actually a
606
+ little more involved and will depend whether your SSL certificate is
607
+ valid or not:
608
+
609
+ ### Your SSL Certificate is Valid ###
610
+
611
+ 1. Generate a Firefox [profile](http://support.mozilla.com/en-US/kb/Profiles)
612
+ accepting the certificate:
613
+
614
+ 1. Start Firefox manually
615
+
616
+ 2. Go to the web page trigerring the certificate popup and
617
+ accept permanently the certification.
618
+
619
+ 3. Close Firefox.
620
+
621
+ 2. Copy the Firefox profile you just changed to a new directory
622
+ (eg `seleniumFirefoxProfile`). You will typically find the
623
+ Firefox profile under (`~/Library/Mozilla/Profiles/`,
624
+ `~/.mozilla/firefox/` or `C:\Documents and settings\%USER%\Application Data\Mozilla\Profiles`).
625
+
626
+
627
+ 3. Now start the Selenium Remote Control using the profile you just copied
628
+ using the `-firefoxProfileTemplate` option.
629
+
630
+ java -jar selenium-server-1.0.jar -firefoxProfileTemplate ~/seleniumFirefoxProfile
631
+
632
+ Or if you are using Selenium Grid:
633
+
634
+ ant -DseleniumArgs="-firefoxProfileTemplate ~/seleniumFirefoxProfile" launch-remote-control
635
+
636
+ ### Your SSL Certificate is Invalid ###
637
+
638
+ When you are running Selenium Grid against Developement or QA
639
+ environments you can run into invalid SSL certificated (expired
640
+ certificate for instance).
641
+
642
+ In that case not only accept permanently the certificate but
643
+ also install the "Remember Mismatch" Firefox plugin when generating
644
+ the firefox profile you will use for Selenium.
645
+
646
+ If you are desperate, there is another solution (quite brutal):
647
+ When you generate the Firefox profile to use for Selenium,
648
+ type about:copy in the browser address line. Then Search every
649
+ `security.warn` attribute and set it to false!
650
+
651
+ I get some strange errors when I run multiple Internet Explorer instances on the same machine
652
+ ---------------------------------------------------------------------------------------------
653
+
654
+ Selenium Grid does not officially support running multiple Internet
655
+ Explorer on a _single_ Windows machine. This is mostly because:
656
+
657
+ * People who know IE better than I do (Dan Fabulich) tell me that if
658
+ you run 2 browsers as the same user in HTA mode they end up sharing a
659
+ singleton instance in memory, which could cause problems.
660
+
661
+ * The `*iexplore` mode is changing the registry settings at each
662
+ session start/end to have IE use a specific Remote Control as HTTP
663
+ proxy. If you run multiple Remote Controls at the same time you can
664
+ see the problems coming! ;-)
665
+
666
+ **Currently, the only robust solution for running multiple IE instances
667
+ with Selenium Grid is to use virtualization.**
668
+
669
+ This said, I am not satisfied wit the current state of affairs and I
670
+ am currently working on better support for IE in Selenium Grid 1.2.
671
+
672
+ Development
673
+ ===========
674
+
675
+ Where can I find Selenium Grid nightly builds?
676
+ ----------------------------------------------
677
+
678
+ Download them from Selenium Grid [core build artifacts](http://xserve.seleniumhq.org:8080/view/Selenium%20Grid/job/Grid%20Core%20-%20Mac/lastSuccessfulBuild/artifact/trunk/target/dist/)
679
+
680
+ Where Can I Get Feedback Selenium Grid on Continuous Integration Builds?
681
+ ------------------------------------------------------------------------
682
+
683
+ Check out latest Selenium Grid builds on
684
+ [http://xserve.seleniumhq.org:8080/view/Selenium%20Grid](http://xserve.seleniumhq.org:8080/)
685
+
686
+