| Class | -SeleniumController | -
| In: | -
-
- lib/controllers/selenium_controller.rb
-
- - |
-
| Parent: | -- ActionController::Base - | -
- # File lib/controllers/selenium_controller.rb, line 50 -50: def record -51: dir = record_table -52: -53: @result = {'resultDir' => dir} -54: for p in ['result', 'numTestFailures', 'numTestPasses', 'numCommandFailures', 'numCommandPasses', 'numCommandErrors', 'totalTime'] -55: @result[p] = params[p] -56: end -57: File.open(log_path(params[:logFile] || 'default.yml'), 'w') {|f| YAML.dump(@result, f)} -58: -59: render :file => view_path('record.rhtml'), :layout => layout_path -60: end --
- # File lib/controllers/selenium_controller.rb, line 7 - 7: def setup - 8: unless params.has_key? :keep_session - 9: reset_session -10: @session_wiped = true -11: end -12: @cleared_tables = clear_tables params[:clear_tables].to_s -13: @loaded_fixtures = load_fixtures params[:fixtures].to_s -14: render :file => view_path('setup.rhtml'), :layout => layout_path -15: end --
- # File lib/controllers/selenium_controller.rb, line 34 -34: def support_file -35: if params[:filename].empty? -36: redirect_to :filename => 'TestRunner.html', :test => 'tests' -37: return -38: end -39: -40: filename = File.join selenium_path, params[:filename] -41: if File.file? filename -42: type = WEBrick::HTTPUtils::DefaultMimeTypes[$1.downcase] if filename =~ /\.(\w+)$/ -43: type ||= 'text/html' -44: send_file filename, :type => type, :disposition => 'inline', :stream => false -45: else -46: render :text => 'Not found', :status => 404 -47: end -48: end --
- # File lib/controllers/selenium_controller.rb, line 17 -17: def test_file -18: params[:testname] = '' if params[:testname].to_s == 'TestSuite.html' -19: filename = File.join selenium_tests_path, params[:testname] -20: if File.directory? filename -21: @suite_path = filename -22: render :file => view_path('test_suite.rhtml'), :layout => layout_path -23: elsif File.readable? filename -24: render_test_case filename -25: else -26: if File.directory? selenium_tests_path -27: render :text => 'Not found', :status => 404 -28: else -29: render :text => "Did not find the Selenium tests path (#{selenium_tests_path}). Run script/generate selenium", :status => 404 -30: end -31: end -32: end --
| Module | -SeleniumHelper | -
| In: | -
-
- lib/selenium_helper.rb
-
- - |
-
| Module | -SeleniumOnRails | -
| In: | -
-
- lib/selenium_on_rails/paths.rb
-
- - - lib/selenium_on_rails.rb - - - |
-
| Module | -SeleniumOnRails::FixtureLoader | -
| In: | -
-
- lib/selenium_on_rails/fixture_loader.rb
-
- - |
-
- # File lib/selenium_on_rails/fixture_loader.rb, line 7 - 7: def available_fixtures - 8: fixtures = {} - 9: path = fixtures_path + '/' -10: files = Dir["#{path}**/*.{yml,csv}"] -11: files.each do |file| -12: rel_path = file.sub(path, '') -13: next if skip_file? rel_path -14: fixture_set = File.dirname(rel_path) -15: fixture_set = '' if fixture_set == '.' -16: fixture = rel_path.sub /\.[^.]*$/, '' -17: fixtures[fixture_set] ||= [] -18: fixtures[fixture_set] << fixture -19: end -20: -21: fixtures -22: end --
- # File lib/selenium_on_rails/fixture_loader.rb, line 46 -46: def clear_tables tables -47: table_names = tables.split /\s*,\s*/ -48: connection = ActiveRecord::Base.connection -49: table_names.each do |table| -50: connection.execute "DELETE FROM #{table}" -51: end -52: table_names -53: end --
- # File lib/selenium_on_rails/fixture_loader.rb, line 24 -24: def load_fixtures fixtures_param -25: available = nil -26: fixtures = fixtures_param.split(/\s*,\s*/).collect do |f| -27: fixture_set = File.dirname f -28: fixture_set = '' if fixture_set == '.' -29: fixture = File.basename f -30: if fixture == 'all' -31: available ||= available_fixtures -32: available[fixture_set] -33: else -34: f -35: end -36: end -37: fixtures.flatten! -38: fixtures.reject! {|f| f.blank? } -39: -40: if fixtures.any? -41: Fixtures.create_fixtures fixtures_path, fixtures -42: end -43: fixtures -44: end --
| Module | -SeleniumOnRails::PartialsSupport | -
| In: | -
-
- lib/selenium_on_rails/partials_support.rb
-
- - |
-
-Provides partials support to test cases so they can include other partial -test cases. -
--The partial‘s commands are returned as html table rows. -
- --Extracts the commands from a partial. The partial must contain a html table -and the first row is ignored since it cannot contain a command. -
- -- # File lib/selenium_on_rails/partials_support.rb, line 19 -19: def extract_commands_from_partial partial -20: partial = partial.match(/.*<table>.*?<tr>.*?<\/tr>(.*?)<\/table>/im)[1] -21: raise "Partial '#{name}' doesn't contain any table" unless partial -22: partial -23: end --
-Overrides where the partial is searched for, and returns only the command -table rows. -
- -- # File lib/selenium_on_rails/partials_support.rb, line 9 - 9: def render_partial partial_path = default_template_name, object = nil, local_assigns = nil, status = nil -10: pattern = partial_pattern partial_path -11: filename = Dir[pattern].first -12: raise "Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')" unless filename -13: partial = render :file => filename, :use_full_path => false, :locals => local_assigns -14: extract_commands_from_partial partial -15: end --
| Module | -SeleniumOnRails::Paths | -
| In: | -
-
- lib/selenium_on_rails/paths.rb
-
- - |
-
- # File lib/selenium_on_rails/paths.rb, line 25 -25: def fixtures_path -26: File.expand_path File.join(RAILS_ROOT, 'test/fixtures') -27: end --
-Returns the path to the layout template. The path is relative in relation -to the app/views/ directory since Rails doesn‘t support absolute -paths to layout templates. -
- -- # File lib/selenium_on_rails/paths.rb, line 19 -19: def layout_path -20: rails_root = Pathname.new File.expand_path(File.join(RAILS_ROOT, 'app/views')) -21: view_path = Pathname.new view_path('layout') -22: view_path.relative_path_from(rails_root).to_s -23: end --
- # File lib/selenium_on_rails/paths.rb, line 29 -29: def log_path log_file -30: File.expand_path(File.dirname(__FILE__) + '/../../log/' + File.basename(log_file)) -31: end --
- # File lib/selenium_on_rails/paths.rb, line 3 -3: def selenium_path -4: @@selenium_path ||= find_selenium_path -5: @@selenium_path -6: end --
- # File lib/selenium_on_rails/paths.rb, line 8 - 8: def selenium_tests_path - 9: File.expand_path(File.join(RAILS_ROOT, 'test/selenium')) -10: end --
- # File lib/selenium_on_rails/paths.rb, line 33 -33: def skip_file? file -34: file.split('/').each do |f| -35: return true if f.upcase == 'CVS' or f.starts_with?('.') or f.ends_with?('~') or f.starts_with?('_') -36: end -37: false -38: end --
| Class | -SeleniumOnRails::RSelenese | -
| In: | -
-
- lib/selenium_on_rails/rselenese.rb
-
- - |
-
| Parent: | -- - SeleniumOnRails::TestBuilder - - | -
-Renders Selenium test templates in a fashion analogous to rxml and -rjs templates. -
-- setup - open :controller => 'customer', :action => 'list' - assert_title 'Customers' --
-See SeleniumOnRails::TestBuilder for a list -of available commands. -
- -| view | -[RW] | -- |
-Render template using local_assigns. -
- -- # File lib/selenium_on_rails/rselenese.rb, line 23 -23: def render template, local_assigns -24: title = (@view.assigns['page_title'] or local_assigns['page_title']) -25: table(title) do -26: test = self #to enable test.command -27: -28: assign_locals_code = '' -29: local_assigns.each_key {|key| assign_locals_code << "#{key} = local_assigns[#{key.inspect}];"} -30: -31: eval assign_locals_code + "\n" + template -32: end -33: end --
| Module | -SeleniumOnRails::Renderer | -
| In: | -
-
- lib/selenium_on_rails/renderer.rb
-
- - |
-
- # File lib/selenium_on_rails/renderer.rb, line 5 - 5: def render_test_case filename - 6: @template.extend SeleniumOnRails::PartialsSupport - 7: @page_title = test_case_name filename - 8: output = render_to_string :file => filename - 9: layout = (output =~ /<html>/i ? false : layout_path) -10: render :text => output, :layout => layout -11: -12: headers['Cache-control'] = 'no-cache' -13: headers['Pragma'] = 'no-cache' -14: headers['Expires'] = '-1' -15: end --
| Class | -SeleniumOnRails::Selenese | -
| In: | -
-
- lib/selenium_on_rails/selenese.rb
-
- - |
-
| Parent: | -- Object - | -
- # File lib/selenium_on_rails/selenese.rb, line 7 -7: def initialize view -8: @view = view -9: end --
- # File lib/selenium_on_rails/selenese.rb, line 11 -11: def render template, local_assigns -12: name = (@view.assigns['page_title'] or local_assigns['page_title']) -13: lines = template.strip.split "\n" -14: html = '' -15: html << extract_comments(lines) -16: html << extract_commands(lines, name) -17: html << extract_comments(lines) -18: raise 'You cannot have comments in the middle of commands!' if next_line lines, :any -19: html -20: end --
| Module | -SeleniumOnRails::SuiteRenderer | -
| In: | -
-
- lib/selenium_on_rails/suite_renderer.rb
-
- - |
-
- # File lib/selenium_on_rails/suite_renderer.rb, line 24 -24: def link_to_test_case suite_name, filename -25: name = suite_name + test_case_name(filename) -26: link_to name, :action => :test_file, :testname => path_to_relative_url(filename).sub(/^\//,'') -27: end --
- # File lib/selenium_on_rails/suite_renderer.rb, line 18 -18: def test_cases path -19: tests = [] -20: visit_all_tests path, '', nil, Proc.new {|n, p| tests << [n,p]} -21: tests -22: end --
- # File lib/selenium_on_rails/suite_renderer.rb, line 2 -2: def test_suite_name path -3: return 'All test cases' if [nil, '/'].include? path_to_relative_url(path) -4: File.split(path)[-1].humanize -5: end --
- # File lib/selenium_on_rails/suite_renderer.rb, line 7 - 7: def test_suites path - 8: suites = [] - 9: -10: parent_path = File.join(File.split(path).slice(0..-2)) #all but last -11: parent_path = path_to_relative_url parent_path -12: suites << ['..', parent_path] unless parent_path.nil? -13: -14: visit_all_tests path, '', Proc.new {|n, p| suites << [n,path_to_relative_url(p)]}, nil -15: suites -16: end --
| Class | -SeleniumOnRails::TestBuilder | -
| In: | -
-
- lib/selenium_on_rails/test_builder.rb
-
- - |
-
| Parent: | -- Object - | -
-Builds Selenium test table using a -high-level Ruby interface. Normally invoked through SeleniumOnRails::RSelenese. -
--See SeleniumOnRails::TestBuilderActions for -the available actions and SeleniumOnRails::TestBuilderAccessors -for the available checks. -
--For more information on the commands supported by TestBuilder, see the Selenium Commands -Documentation at release.openqa.org/selenium-core/nightly/reference.html. -
- --Create a new TestBuilder for view. -
- -- # File lib/selenium_on_rails/test_builder.rb, line 47 -47: def initialize view -48: @view = view -49: @output = '' -50: @xml = Builder::XmlMarkup.new :indent => 2, :target => @output -51: end --
-Prepends pattern with ‘exact:’ if it would be -considered containing string-match pattern otherwise. -
- -- # File lib/selenium_on_rails/test_builder.rb, line 42 -42: def exactize pattern -43: pattern.include?(':') ? "exact:#{pattern}" : pattern -44: end --
-Re routes commands in the provided block to command_and_wait instead of command. -
- -- # File lib/selenium_on_rails/test_builder.rb, line 79 -79: def make_command_waiting -80: self.class.send :alias_method, :command, :command_and_wait -81: yield -82: self.class.send :alias_method, :command, :command_verbatim -83: end --
-If arg is an array formats arg to a textual -representation. Otherwise return unchanged. -
- -- # File lib/selenium_on_rails/test_builder.rb, line 95 - 95: def collection_arg arg - 96: if arg.is_a? Array - 97: arg.collect {|e| e.gsub(/[\\,]/) {|s| "\\#{s}" } }.join(',') - 98: else - 99: arg -100: end -101: end --
-If url is a string, return unchanged. Otherwise, pass it to -ActionView#UrlHelper#url_for. -
- -- # File lib/selenium_on_rails/test_builder.rb, line 89 -89: def url_arg url -90: if url.instance_of?(String) then url else exactize(@view.url_for(url)) end -91: end --
| Module | -SeleniumOnRails::TestBuilderAccessors | -
| In: | -
-
- lib/selenium_on_rails/test_builder_accessors.rb
-
- - |
-
-The accessors available for SeleniumOnRails::TestBuilder tests. -
--For each store_foo there‘s assert_foo, -assert_not_foo, verify_foo, verify_not_foo, -wait_for_foo, wait_for_not_foo. -
- --Gets the absolute URL of the current page. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 246 -246: def store_absolute_location variable_name -247: command 'storeAbsoluteLocation', variable_name -248: end --
-Retrieves the message of a JavaScript alert generated during the previous -action, or fail if there were no alerts. -
--Getting an alert has the same effect as manually clicking OK. If an alert -is generated but you do not get/verify it, the next Selenium action will -fail. -
--NOTE: under Selenium, JavaScript alerts will NOT pop up a visible alert -dialog. -
--NOTE: Selenium does NOT support JavaScript alerts that are generated in a -page‘s onload() event handler. In this case a visible dialog -WILL be generated and Selenium will hang until someone manually clicks OK. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 183 -183: def store_alert variable_name -184: command 'storeAlert', variable_name -185: end --
-Has an alert occurred? -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 89 -89: def store_alert_present variable_name -90: command 'storeAlertPresent', variable_name -91: end --
-Returns the IDs of all buttons on the page. -
--If a given button has no ID, it will appear as "" in this array. -
--The pattern for the automatically generated assertions can either -take an array or a pattern. -
-- assert_all_buttons ['but1', 'but2'] - assert_all_buttons 'but?,but?*' --
-Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 754 -754: def store_all_buttons variable_name -755: command 'storeAllButtons', variable_name -756: end --
-Returns the IDs of all input fields on the page. -
--If a given field has no ID, it will appear as "" in this array. -
--The pattern for the automatically generated assertions can either -take an array or a pattern. -
-- assert_all_fields ['field1', 'field2'] - assert_all_fields 'field?,field?*' --
-Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 794 -794: def store_all_fields variable_name -795: command 'storeAllFields', variable_name -796: end --
-Returns the IDs of all links on the page. -
--If a given link has no ID, it will appear as "" in this array. -
--The pattern for the automatically generated assertions can either -take an array or a pattern. -
-- assert_all_links ['link1', 'link2'] - assert_all_links 'link?,link?*' --
-Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 774 -774: def store_all_links variable_name -775: command 'storeAllLinks', variable_name -776: end --
-Returns the IDs of all windows that the browser knows about. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 50 -50: def store_all_window_ids variable_name -51: command 'storeAllWindowIds', variable_name -52: end --
-Returns the names of all windows that the browser knows about. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 63 -63: def store_all_window_names variable_name -64: command 'storeAllWindowNames', variable_name -65: end --
-Returns the titles of all windows that the browser knows about. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 76 -76: def store_all_window_titles variable_name -77: command 'storeAllWindowTitles', variable_name -78: end --
-Gets the value of an element attribute. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 577 -577: def store_attribute locator, attribute_name, variable_name -578: command 'storeAttribute', "#{locator}@#{attribute_name}", variable_name -579: end --
-Returns every instance of some attribute from all known windows. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 102 -102: def store_attribute_from_all_windows attribute_name, variable_name -103: command 'storeAttributeFromAllWindows', attribute_name, variable_name -104: end --
-Gets the entire text of the page. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 300 -300: def store_body_text variable_name -301: command 'storeBodyText', variable_name -302: end --
-Gets whether a toggle-button (checkbox/radio) is checked. Fails if the -specified element doesn‘t exist or isn‘t a toggle-button. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 370 -370: def store_checked locator, variable_name -371: command 'storeChecked', locator, variable_name -372: end --
-Retrieves the message of a JavaScript confirmation dialog generated during -the previous action. -
--By default, the confirm function will return true, having the same -effect as manually clicking OK. This can be changed by prior execution of -the choose_cancel_on_next_confirmation command. If a confirmation -is generated but you do not get/verify it, the next Selenium action will -fail. -
--NOTE: under Selenium, JavaScript confirmations will NOT pop up a visible -dialog. -
--NOTE: Selenium does NOT support JavaScript confirmations that are generated -in a page‘s onload() event handler. In this case a visible -dialog WILL be generated and Selenium will hang until you manually click -OK. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 209 -209: def store_confirmation variable_name -210: command 'storeConfirmation', variable_name -211: end --
-Has confirm() been called? -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 128 -128: def store_confirmation_present variable_name -129: command 'storeConfirmationPresent', variable_name -130: end --
-Return all cookies of the current page under test. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 141 -141: def store_cookie variable_name -142: command 'storeCookie', variable_name -143: end --
-Retrieves the text cursor position in the given input element or textarea; -beware, this may not work perfectly on all browsers. -
--This method will fail if the specified element isn‘t an input element -or textarea, or there is no cursor in the element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 158 -158: def store_cursor_position locator, variable_name -159: command 'storeCursorPosition', locator, variable_name -160: end --
-Determines whether the specified input element is editable, i.e. -hasn‘t been disabled. This method will fail if the specified element -isn‘t an input element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 734 -734: def store_editable locator, variable_name -735: command 'storeEditable', locator, variable_name -736: end --
-Retrieves the height of an element. This method will fail if the element is -not present. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 650 -650: def store_element_height locator, variable_name -651: command 'storeElementHeight', locator, variable_name -652: end --
-Get the relative index of an element to its parent (starting from 0). The -comment node and empty text node will be ignored. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 664 -664: def store_element_index locator, variable_name -665: command 'storeElementIndex', locator, variable_name -666: end --
-Retrieves the horizontal position of an element. This method will fail if -the element is not present. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 692 -692: def store_element_position_left locator, variable_name -693: command 'storeElementPositionLeft', locator, variable_name -694: end --
-Retrieves the vertical position of an element. This method will fail if the -element is not present. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 706 -706: def store_element_position_top locator, variable_name -707: command 'storeElementPositionTop', locator, variable_name -708: end --
-Verifies that the specified element is somewhere on the page. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 620 -620: def store_element_present locator, variable_name -621: command 'storeElementPresent', locator, variable_name -622: end --
-Retrieves the width of an element. This method will fail if the element is -not present. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 678 -678: def store_element_width locator, variable_name -679: command 'storeElementWidth', locator, variable_name -680: end --
-Tell Selenium to expect an error on the next command execution. -
--NOTE: store_error_on_next is -currently not supported by Selenium Core and is only added to here as a -shortcut for generating the related assertions. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 20 -20: def store_error_on_next message -21: raise 'Not supported in Selenium Core at the moment' -22: end --
-Gets the result of evaluating the specified JavaScript snippet. The snippet -may have multiple lines, but only the result of the last line will be -returned. -
--Note that, by default, the snippet will run in the context of the -"selenium" object itself, so this will refer to the -Selenium object, and window will refer to the top-level runner -test window, not the window of your application. -
--If you need a reference to the window of your application, you can refer to -this.browserbot.getCurrentWindow() and if you need to use a -locator to refer to a single element in your application page, you can use -this.page().findElement("foo") where -"foo" is your locator. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 356 -356: def store_eval script, variable_name -357: command 'storeEval', script, variable_name -358: end --
-Returns the specified expression. -
--This is useful because of JavaScript preprocessing. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 822 -822: def store_expression expression, variable_name -823: command 'storeExpression', expression, variable_name -824: end --
-Tell Selenium to expect a failure on the next command execution. -
--NOTE: store_failure_on_next is -currently not supported by Selenium Core and is only added to here as a -shortcut for generating the related assertions. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 37 -37: def store_failure_on_next message -38: raise 'Not supported in Selenium Core at the moment' -39: end --
-Returns the entire HTML source between the opening and closing -"html" tags. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 807 -807: def store_html_source variable_name -808: command 'storeHtmlSource', variable_name -809: end --
-Verify the location of the current page ends with the expected location. If -an URL querystring is provided, this is checked as well. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 260 -260: def store_location expected_location, variable_name -261: command 'storeLocation', expected_location, variable_name -262: end --
-Return the contents of the log. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 719 -719: def store_log_messages variable_name -720: command 'storeLogMessages', variable_name -721: end --
-Returns the number of pixels between "mousemove" events during -drag_and_drop commands (default=10). -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 274 -274: def store_mouse_speed variable_name -275: command 'storeMouseSpeed', variable_name -276: end --
-Check if these two elements have same parent and are ordered. Two same -elements will not be considered ordered. -
--NOTE: store_ordered is -currently not supported by Selenium Core. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 593 -593: def store_ordered locator_1, locator_2, variable_name -594: raise 'Not supported in Selenium Core at the moment' -595: end --
-Retrieves the message of a JavaScript question prompt dialog generated -during the previous action. -
--Successful handling of the prompt requires prior execution of the -answer_on_next_prompt command. If a prompt is generated but you do -not get/verify it, the next Selenium action will fail. -
--NOTE: under Selenium, JavaScript prompts will NOT pop up a visible dialog. -
--NOTE: Selenium does NOT support JavaScript prompts that are generated in a -page‘s onload() event handler. In this case a visible dialog -WILL be generated and Selenium will hang until someone manually clicks OK. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 233 -233: def store_prompt variable_name -234: command 'storePrompt', variable_name -235: end --
-Has a prompt occurred? -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 115 -115: def store_prompt_present variable_name -116: command 'storePromptPresent', variable_name -117: end --
-Gets all option labels in the specified select drop-down. -
--The pattern for the automatically generated assertions can either -take an array or a pattern. -
-- assert_select_options 'fruits', ['apple', 'pear'] - assert_select_options 'fruits', 'a*,p*' --
-Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 564 -564: def store_select_options locator, variable_name -565: command 'storeSelectOptions', locator, variable_name -566: end --
-Verifies that the selected option of a drop-down satisfies the -option_locator. -
--option_locator is typically just an option label (e.g. "John -Smith"). -
--See the select command for more information about option locators. -
--NOTE: store_selected is -currently not supported by Selenium Core. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 403 -403: def store_selected locator, option_locator, variable_name -404: raise 'Not supported in Selenium Core at the moment' -405: end --
-Gets option element ID for selected option in the specified select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 416 -416: def store_selected_id select_locator, variable_name -417: command 'storeSelectedId', select_locator, variable_name -418: end --
-Gets all option element IDs for selected options in the specified select or -multi-select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 430 -430: def store_selected_ids select_locator, variable_name -431: command 'storeSelectedIds', select_locator, variable_name -432: end --
-Gets option index (option number, starting at 0) for selected option in the -specified select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 444 -444: def store_selected_index select_locator, variable_name -445: command 'storeSelectedIndex', select_locator, variable_name -446: end --
-Gets all option indexes (option number, starting at 0) for selected options -in the specified select or multi-select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 458 -458: def store_selected_indexes select_locator, variable_name -459: command 'storeSelectedIndexes', select_locator, variable_name -460: end --
-Gets option label (visible text) for selected option in the specified -select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 472 -472: def store_selected_label select_locator, variable_name -473: command 'storeSelectedLabel', select_locator, variable_name -474: end --
-Gets all option labels (visible text) for selected options in the specified -select or multi-select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 486 -486: def store_selected_labels select_locator, variable_name -487: command 'storeSelectedLabels', select_locator, variable_name -488: end --
-Gets all option labels for selected options in the specified select or -multi-select element. -
--The pattern for the automatically generated assertions can either -take an array or a pattern. -
-- assert_selected_options 'fruits', ['apple', 'pear'] - assert_selected_options 'fruits', 'a*,p*' --
-Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 546 -546: def store_selected_options locator, variable_name -547: command 'storeSelectedOptions', locator, variable_name -548: end --
-Gets option value (value attribute) for selected option in the specified -select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 500 -500: def store_selected_value select_locator, variable_name -501: command 'storeSelectedValue', select_locator, variable_name -502: end --
-Gets all option values (value attribute) for selected options in the -specified select or multi-select element. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 514 -514: def store_selected_values select_locator, variable_name -515: command 'storeSelectedValues', select_locator, variable_name -516: end --
-Determines whether some option in a drop-down menu is selected. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 527 -527: def store_something_selected select_locator, variable_name -528: command 'storeSomethingSelected', select_locator, variable_name -529: end --
-Gets the text from a cell of a table. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 383 -383: def store_table locator, row, column, variable_name -384: command 'storeTable', "#{locator}.#{row}.#{column}", variable_name -385: end --
-Gets the text of an element. This works for any element that contains text. -This command uses either the textContent (Mozilla-like browsers) -or the innerText (IE-like browsers) of the element, which is the -rendered text shown to the user. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 331 -331: def store_text locator, variable_name -332: command 'storeText', locator, variable_name -333: end --
-Verifies that the specified text pattern appears somewhere on the rendered -page shown to the user. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 607 -607: def store_text_present pattern, variable_name -608: command 'storeTextPresent', pattern, variable_name -609: end --
-Gets the title of the current page. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 287 -287: def store_title variable_name -288: command 'storeTitle', variable_name -289: end --
-Gets the (whitespace-trimmed) value of an input field (or anything else -with a value parameter). For checkbox/radio elements, the value will be -"on" or "off" depending on whether the element is -checked or not. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 315 -315: def store_value locator, variable_name -316: command 'storeValue', locator, variable_name -317: end --
-Determines if the specified element is visible. An element can be rendered -invisible by setting the CSS "visibility" property to -"hidden", or the "display" property to -"none", either for the element itself or one if its ancestors. -This method will fail if the element is not present. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 636 -636: def store_visible locator, variable_name -637: command 'storeVisible', locator, variable_name -638: end --
-Determine whether current/locator identify the frame containing this -running code. -
--This is useful in proxy injection mode, where this code runs in every -browser frame and window, and sometimes the selenium server needs to -identify the "current" frame. In this case, when the test calls -select_frame, this routine is called for each frame to figure out which one -has been selected. The selected frame will return true, while all others -will return false. -
--NOTE: store_whether_this_frame_match_frame_expression -is currently not supported by Selenium Core. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 846 -846: def store_whether_this_frame_match_frame_expression current_frame_string, target, variable_name -847: raise 'Not supported in Selenium Core at the moment' -848: end --
-Determine whether current_window_string plus target identify the window -containing this running code. -
--This is useful in proxy injection mode, where this code runs in every -browser frame and window, and sometimes the selenium server needs to -identify the "current" window. In this case, when the test calls -select_window, this routine is called for each window to figure out which -one has been selected. The selected window will return true, while all -others will return false. -
--NOTE: store_whether_this_window_match_window_expression -is currently not supported by Selenium Core. -
--Related Assertions, automatically generated: -
-- # File lib/selenium_on_rails/test_builder_accessors.rb, line 869 -869: def store_whether_this_window_match_window_expression current_window_string, target, variable_name -870: raise 'Not supported in Selenium Core at the moment' -871: end --
| Module | -SeleniumOnRails::TestBuilderActions | -
| In: | -
-
- lib/selenium_on_rails/test_builder_actions.rb
-
- - |
-
-The actions available for SeleniumOnRails::TestBuilder tests. -
--For each action foo there‘s also an action -foo_and_wait. -
- --Add a selection to the set of selected options in a multi-select element using an option -locator. -
--See the select -command for more information about option locators. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 148 -148: def add_selection locator, option_locator -149: command 'addSelection', locator, option_locator -150: end --
-Simulates the user pressing the alt key and hold it down until do_alt_up() -is called or a new page is loaded. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 221 -221: def alt_key_down -222: command 'altKeyDown' -223: end --
-Simulates the user releasing the alt key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 226 -226: def alt_key_up -227: command 'altKeyUp' -228: end --
-Instructs Selenium to return the specified answer string in response to the -next JavaScript prompt (window.prompt()). -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 199 -199: def answer_on_next_prompt answer -200: command 'answerOnNextPrompt', answer -201: end --
-Halt the currently running test, and wait for the user to press the -Continue button. This command is useful for debugging, but be careful when -using it, because it will force automated tests to hang until a user -intervenes manually. -
--NOTE: break is a reserved word in Ruby, so we have to simulate -Selenium core‘s break() with brake() -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 236 -236: def brake -237: command 'break' -238: end --
-Check a toggle-button (checkbox/radio). -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 108 -108: def check locator -109: command 'check', locator -110: end --
-By default, Selenium‘s overridden window.confirm() function -will return true, as if the user had manually clicked OK. After -running this command, the next call to confirm() will return -false, as if the user had clicked Cancel. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 193 -193: def choose_cancel_on_next_confirmation -194: command 'chooseCancelOnNextConfirmation' -195: end --
-Clicks on a link, button, checkbox or radio button. If the click action causes a new page -to load (like a link usually does), call wait_for_page_to_load. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 47 -47: def click locator -48: command 'click', locator -49: end --
-Clicks on a link, button, checkbox or radio button. If the click action causes a new page -to load (like a link usually does), call wait_for_page_to_load. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 53 -53: def click_at locator, coord_string -54: command 'clickAt', locator, coord_string -55: end --
-Simulates the user pressing the alt key and hold it down until -do_control_up() is called or a new page is loaded. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 242 -242: def control_key_down -243: command 'controlKeyDown' -244: end --
-Simulates the user releasing the control key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 247 -247: def control_key_up -248: command 'controlKeyUp' -249: end --
-Create a new cookie whose path and domain are same with those of current -page under test, unless you specified a path for this cookie explicitly. -
--Arguments: -
-- # File lib/selenium_on_rails/test_builder_actions.rb, line 260 -260: def create_cookie name_value_pair, options_string -261: command 'createCookie', name_value_pair, options_string -262: end --
-Delete a named cookie with specified path. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 265 -265: def delete_cookie name, path -266: command 'deleteCookie', name, path -267: end --
-Double clicks on a link, button, checkbox or radio button. If the double click action causes a new page -to load (like a link usually does), call wait_for_page_to_load. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 271 -271: def double_click locator -272: command 'doubleClick', locator -273: end --
-Doubleclicks on a link, button, checkbox or radio button. If the action -causes a new page to load (like a link usually does), call wait_for_page_to_load. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 277 -277: def double_click_at locator, coord_string -278: command 'doubleClickAt', locator, coord_string -279: end --
-Drags an element a certain distance and then drops it. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 282 -282: def drag_and_drop locator, movements_string -283: command 'dragAndDrop', locator, movements_string -284: end --
-Drags an element and drops it on another element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 287 -287: def drag_and_drop_to_object locator_of_object_to_be_dragged, locator_of_drag_destination_object -288: command 'dragAndDropToObject', locator_of_object_to_be_dragged, locator_of_drag_destination_object -289: end --
-Explicitly simulate an event (e.g. "focus", -"blur"), to trigger the corresponding -"on_event_" handler. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 59 -59: def fire_event locator, event_name -60: command 'fireEvent', locator, event_name -61: end --
-Simulates the user clicking the "back" button on their browser. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 204 -204: def go_back -205: command 'goBack' -206: end --
-Briefly changes the backgroundColor of the specified element yellow. Useful -for debugging. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 300 -300: def highlight locator -301: command 'highlight', locator -302: end --
-Includes a partial. The path is relative to the Selenium tests root. The -starting _ and the file extension don‘t have to be specified. -
-- #include test/selenium/_partial.* - include_partial 'partial' - #include test/selenium/suite/_partial.* - include_partial 'suite/partial' - #include test/selenium/suite/_partial.* and provide local assigns - include_partial 'suite/partial', :foo => bar -- -
- # File lib/selenium_on_rails/test_builder_actions.rb, line 39 -39: def include_partial path, local_assigns = {} -40: partial = @view.render :partial => path, :locals => local_assigns -41: @output << partial -42: end --
-Simulates a user pressing a key (without releasing it yet). -
--keycode is the numeric keycode of the key to be pressed, normally -the ASCII value of that key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 75 -75: def key_down locator, keycode -76: command 'keyDown', locator, keycode -77: end --
-Simulates a user pressing and releasing a key. -
--keycode is the numeric keycode of the key to be pressed, normally -the ASCII value of that key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 67 -67: def key_press locator, keycode -68: command 'keyPress', locator, keycode -69: end --
-Simulates a user releasing a key. -
--keycode is the numeric keycode of the key to be released, normally -the ASCII value of that key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 83 -83: def key_up locator, keycode -84: command 'keyUp', locator, keycode -85: end --
-Press the meta key and hold it down until doMetaUp() is called or -a new page is loaded. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 306 -306: def meta_key_down -307: command 'metaKeyDown' -308: end --
-Release the meta key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 311 -311: def meta_key_up -312: command 'metaKeyUp' -313: end --
-Simulates a user pressing the mouse button (without releasing it yet) on -the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 94 -94: def mouse_down locator -95: command 'mouseDown', locator -96: end --
-Simulates a user pressing the mouse button (without releasing it yet) on -the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 317 -317: def mouse_down_at locator, coord_string -318: command 'mouseDownAt', locator, coord_string -319: end --
-Simulates a user moving the mouse. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 322 -322: def mouse_move locator -323: command 'mouseMove', locator -324: end --
-Simulates a user moving the mouse relative to the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 327 -327: def mouse_move_at locator, coord_string -328: command 'mouseMoveAt', locator, coord_string -329: end --
-Simulates the user moving the mouse off the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 332 -332: def mouse_out locator -333: command 'mouseOut', locator -334: end --
-Simulates a user hovering a mouse over the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 88 -88: def mouse_over locator -89: command 'mouseOver', locator -90: end --
-Simulates the user releasing the mouse button on the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 337 -337: def mouse_up locator -338: command 'mouseUp', locator -339: end --
-Simulates a user pressing the mouse button (without releasing it yet) on -the specified element. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 343 -343: def mouse_up_at locator, coord_string -344: command 'mouseUpAt', locator, coord_string -345: end --
-Opens an URL in the test frame. This accepts both relative and absolute -URLs. The open -command waits for the page to load before proceeding, i.e. you don‘t -have to call wait_for_page_to_load. -
--Note: The URL must be on the same domain as the runner HTML due to security -restrictions in the browser (Same Origin Policy). -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 172 -172: def open url -173: command 'open', url_arg(url) -174: end --
-Opens a popup window (if a window with that ID isn‘t already open). After opening the window, -you‘ll need to select -it using the select_window command. -
--This command can also be a useful workaround for bug SEL-339. In some -cases, Selenium will be unable to intercept a call to window.open (if the -call occurs during or before the "onLoad" event, for example). In -those cases, you can force Selenium to notice the open window‘s name by -using the Selenium openWindow command, using an empty (blank) url, like -this: open_window("", -"myFunnyWindow"). -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 355 -355: def open_window url, window_id -356: command 'openWindow', url, window_id -357: end --
-Wait for the specified amount of time (in milliseconds). -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 360 -360: def pause wait_time -361: command 'pause', wait_time -362: end --
-Simulates the user clicking the "Refresh" button on their -browser. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 209 -209: def refresh -210: command 'refresh' -211: end --
-Remove a selection from the set of selected options in a multi-select element using an option -locator. -
--See the select -command for more information about option locators. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 156 -156: def remove_selection locator, option_locator -157: command 'removeSelection', locator, option_locator -158: end --
-Select an option from a drop-down using an option locator. -
--Option locators provide different ways of specifying options of an HTML -Select element (e.g. for selecting a specific option, or for asserting that -the selected option satisfies a specification). There are several forms of -Select Option Locator. -
-- label=regexp:^[Oo]ther --
- value=other --
- id=option1 --
- index=2 --
-If no option locator prefix is provided, the default behaviour is to match -on label. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 140 -140: def select locator, option_locator -141: command 'select', locator, option_locator -142: end --
-Selects a frame within the current window. (You may invoke this command -multiple times to select -nested frames.) To select the -parent frame, use "relative=parent" as a locator; to select the top frame, use -"relative=top". -
--You may also use a DOM expression to identify the frame you want directly, -like this: dom=frames["main"].frames -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 375 -375: def select_frame locator -376: command 'selectFrame', locator -377: end --
-Selects a popup window; once a popup window has been selected, all commands -go to that window. To select -the main window again, use nil as the target. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 178 -178: def select_window window_id -179: command 'selectWindow', window_id||'null' -180: end --
-Writes a message to the status bar and adds a note to the browser-side log. -
--context is the message sent to the browser. -
--log_level_threshold can be nil, :debug, -:info, :warn or :error. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 448 -448: def set_context context, log_level_threshold = nil -449: if log_level_threshold -450: command 'setContext', context, log_level_threshold.to_s -451: else -452: command 'setContext', context -453: end -454: end --
-Moves the text cursor to the specified position in the given input element -or textarea. This method will fail if the specified element isn‘t an -input element or textarea. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 381 -381: def set_cursor_position locator, position -382: command 'setCursorPosition', locator, position -383: end --
-Configure the number of pixels between "mousemove" events during -dragAndDrop commands (default=10). Setting this value to 0 means that -we‘ll send a "mousemove" event to every single pixel in -between the start location and the end location; that can be very slow, and -may cause some browsers to force the JavaScript to timeout. -
--If the mouse speed is greater than the distance between the two dragged -objects, we‘ll just send one "mousemove" at the start -location and then one final one at the end location. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 393 -393: def set_mouse_speed pixels -394: command 'setMouseSpeed', pixels -395: end --
-Specifies the amount of time that Selenium will wait for actions to -complete. -
--Actions that require waiting include open and the -wait_for* actions. -
--The default timeout is 30 seconds. -
--timeout is specified in milliseconds. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 480 -480: def set_timeout timeout -481: command 'setTimeout', timeout -482: end --
-Tell Selenium on Rails to clear the session and load any fixtures. DO NOT -CALL THIS AGAINST NON-TEST DATABASES. The supported options are -:keep_session, :fixtures and :clear_tables -
-- setup - setup :keep_session - setup :fixtures => :all - setup :keep_session, :fixtures => [:foo, :bar] - setup :clear_tables => [:foo, :bar] -- -
- # File lib/selenium_on_rails/test_builder_actions.rb, line 14 -14: def setup options = {} -15: options = {options => nil} unless options.is_a? Hash -16: -17: opts = {:controller => 'selenium', :action => 'setup'} -18: opts[:keep_session] = true if options.has_key? :keep_session -19: -20: [:fixtures, :clear_tables].each do |key| -21: if (f = options[key]) -22: f = [f] unless f.is_a? Array -23: opts[key] = f.join ',' -24: end -25: end -26: -27: open opts -28: end --
-Press the shift key and hold it down until doShiftUp() is called -or a new page is loaded. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 399 -399: def shift_key_down -400: command 'shiftKeyDown' -401: end --
-Release the shift key. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 404 -404: def shift_key_up -405: command 'shiftKeyUp' -406: end --
-This command is a synonym for store_expression. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 409 -409: def store expression, variable_name -410: command 'store', expression, variable_name -411: end --
-Sets the value of an input field, as though you typed it in. -
--Can also be used to set the value of combo boxes, check boxes, etc. In these -cases, value should be the value of the option selected, not the -visible text. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 103 -103: def type locator, value -104: command 'type', locator, value -105: end --
-Simulates keystroke events on the specified element, as though you typed -the value key-by-key. -
--This is a convenience method for calling key_down, key_up, key_press for every -character in the specified string; this is useful for dynamic UI widgets -(like auto-completing combo boxes) that require explicit key events. -
--Unlike the simple "type" command, which forces -the specified value into the page directly, this command may or may not -have any visible effect, even in cases where typing keys would normally -have a visible effect. For example, if you use "type_keys" on a form -element, you may or may not see the results of what you typed in the field. -
--In some cases, you may need to use the simple "type" command to set the -value of the field and then the "type_keys" command to -send the keystroke events corresponding to what you just typed. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 428 -428: def type_keys locator, value -429: command 'typeKeys', locator, value -430: end --
-Uncheck a toggle-button (checkbox/radio). -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 113 -113: def uncheck locator -114: command 'uncheck', locator -115: end --
-Runs the specified JavaScript snippet repeatedly until it evaluates to -true. The snippet may have multiple lines, but only the result of -the last line will be considered. -
--Note that, by default, the snippet will be run in the runner‘s test -window, not in the window of your application. To get the window of your -application, you can use the JavaScript snippet -selenium.browserbot.getCurrentWindow(), and then run your -JavaScript in there. -
--timeout is specified in milliseconds. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 467 -467: def wait_for_condition script, timeout -468: command 'waitForCondition', script, timeout -469: end --
-Waits for a new page to load. -
--You can use this command instead of the and_wait suffixes, -click_and_wait, select_and_wait, type_and_wait -etc. (which are only available in the JS API). -
--Selenium constantly keeps track of new pages loading, and sets a -newPageLoaded flag when it first notices a page load. Running any -other Selenium command after turns the flag to false. Hence, if -you want to wait for a page to load, you must wait immediately after a -Selenium command that caused a page-load. -
--timeout is specified in milliseconds. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 497 -497: def wait_for_page_to_load timeout -498: command 'waitForPageToLoad', timeout -499: end --
-Waits for a popup window to appear and load up. -
--The timeout is specified in milliseconds. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 185 -185: def wait_for_popup window_id, timeout -186: command 'waitForPopUp', window_id||'null', timeout -187: end --
-Gives focus to a window. -
- -- # File lib/selenium_on_rails/test_builder_actions.rb, line 433 -433: def window_focus window_name -434: command 'windowFocus', window_name -435: end --
| Module | -SeleniumOnRails::TestBuilderUserAccessors | -
| In: | -
-
- lib/selenium_on_rails/test_builder.rb
-
- - |
-
-Create test_builder_user_accessors.rb to support accessors included in -selenium-core‘s user-extensions.js -
--See test_builder_user_accessors.rb.example for examples matching -selenium-core‘s user-extensions.js.sample -
- -| Module | -SeleniumOnRails::TestBuilderUserActions | -
| In: | -
-
- lib/selenium_on_rails/test_builder.rb
-
- - |
-
-Create test_builder_user_actions.rb to support actions included in -selenium-core‘s user-extensions.js -
--See test_builder_user_actions.rb.example for examples matching -selenium-core‘s user-extensions.js.sample -
- -| Class | -SeleniumOnRailsConfig | -
| In: | -
-
- lib/selenium_on_rails_config.rb
-
- - |
-
| Parent: | -- Object - | -
| Path: | -CHANGELOG - | -
| Last Update: | -Sat Feb 03 23:49:15 +0100 2007 | -
-Warning: Users must change tests that pass two parameters (locator, -pattern) to verify_checked, verify_not_checked, -assert_checked, assert_not_checked, -wait_for_checked, or wait_for_not_checked. -
--Test scripts that continue to use two parameters will be broken, only one -parameter, the locator, should be passed. -
--For example, |verify_checked|my_checkbox|true| will be interpreted -as |verify_checked|my_checkboxtrue|| so change the test to -|verify_checked|my_checkbox|| -
--Note: On Mac OS X, at least, clear_tables comes before fixtures in the -query string; this may be an environment-specific issue if the test now -fails on other OSes. -
--Here are the newly supported actions: -
--Useful for debugging: -
--Keyboard events: -
--Mouse events: -
--Other actions: -
--Here are the newly supported accessors: -
--The following store_* accessors and their associated assert, verify and -wait_for brethren are fully supported: -
--Only the associated assert, verify and wait_for brethren of the following -store_* accessors are supported by the selenium-core, so these store_* -accessors create exceptions in SOR: -
-| Path: | -README - | -
| Last Update: | -Sat Feb 03 22:54:11 +0100 2007 | -
Welcome to the Selenium on Rails README. Exciting isn’t it?
- -Selenium on Rails provides an easy way to test Rails application with - SeleniumCore[http://www.openqa.org/selenium-core/].
- -This plugin does four things:
- -Rails periodically changes the way that it renders pages, which unfortunately breaks backwards versions of Selenium on Rails. Therefore there are different - installation locations depending on your version of Rails:
- -Rails 2.2 and up:
- -http://svn.openqa.org/svn/selenium-on-rails/stable/selenium-on-rails
-
-
- Rails 2.1:
- -http://svn.openqa.org/svn/selenium-on-rails/tags/rails_2_1/selenium-on-rails
-
-
- Before Rails 2.1:
- -http://svn.openqa.org/svn/selenium-on-rails/tags/pre-rails-2-1/selenium-on-rails
-
-
- The latest release is always kept on GitHub at
- -git clone git://github.com/paytonrules/selenium-on-rails.git
-
-
- To install:
- -The test cases can be written in a number of formats. Which one you choose is a matter of taste. You can generate your test files by running script/generate selenium or by creating them manually in your /test/selenium directory.
- -RSelenese lets you write your tests in Ruby. This is my favorite format.
- -setup :fixtures => :all
- open '/'
- assert_title 'Home'
- ('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
-
-
- See SeleniumOnRails::TestBuilder for available commands. IMPORTANT NOTE: RSelenese generates the HTML tables for Selenium behind the scenes when the page is loaded - ONCE. That means code like this:
- -(1..10).each do |index|
- do something
- end
-
-
- Will only be executed when the test is loaded, not when the test is run. This is a common error and leads to tests that work the first time and fail the second time.
- -Selenese is the dumbest format (in a good way). You just write your commands delimited by | characters.
- -|open|/selenium/setup|
- |open|/|
- |goBack|
-
-
- If you don‘t want to write Selenese tests by hand you can use SeleniumIDE which has support for Selenese.
- -You can write your tests in HTML/RHTML but that‘s mostly useful if you have existing tests you want to reuse.
- -If you have some common actions you want to do in several test cases you can put them in a separate partial test case and include them in your other test cases. This is highly recommended, just as small functions would be recommended in structured programming.
- -A partial test case is just like a normal test case besides that its filename has to start with _:
- -#_login.rsel
- open '/login'
- type 'name', name
- type 'password', password
- click 'submit', :wait=>true
-
-
- To include a partial test case in a RSelenese test case:
- -include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
-
-
- in a Selenese test case:
- -|includePartial|login|name=John Doe|password=eoD nhoJ|
-
-
- and in a RHTML test case:
- -<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
-
-
- There are a number of settings available. You make them by renaming selenium.yml.example to selenium.yml and placing it in your rails app’s config - file. Make your changes in that file.
- -Per default this plugin is only available in test environment. You can change this by setting environments, such as:
- -#selenium.yml
- environments:
- - test
- - development
-
-
- If you don‘t want to use the bundled Selenium Core version you can set selenium_path to the directory where Selenium Core is stored.
- -#config.yml
- selenium_path: 'c:\selenium'
-
-
- You can run all your Selenium tests as a Rake task. If you’re using a continuous builder this is a great way to integrate selenium into your build process. First, if you‘re on Windows, you have to make sure win32-open3 is installed. Then you have to configure which browsers you want to run, like this:
- -#config.yml
- browsers:
- firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
- ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
-
-
- Now you‘re all set. First start a server:
- -script/server -e test
-
-
- Then run the tests:
- -rake test:acceptance
-
-
- Now it should work, otherwise let me know!
- -If you want to store the results from a test:acceptance you just need to set in which directory they should be stored:
- -#config.yml
- result_dir: 'c:\result'
-
-
- So when you run rake test:acceptance the tables with the results will be stored as .html files in that directory.
- -Selenium has support for user_extension.js which is a way to extend the functionality of Selenium Core. Selenium on Rails now provides the means for you to extend it’s functionality to match.
- -To get you started, we’ve included the example files lib/test_builder_user_accessors.rb.example and lib/test_builder_user_actions.rb.example that replicate the sample extensions in Selenium Core’s user-extensions.js.sample.
- -To get these examples running, simply remove the .example and .sample extensions - from the files and restart your server.
- -Standalone mode - More work is needed on test:acceptance< on Windows to be able to start the server when needed.
Documentation update
Contributing is simple. Fork this repo, make your changes, then issue a pull request. IMPORTANT I will not take forks that do not have associated unit tests. There must be tests, and they must pass, so I can bring the changes in.
- -For more information, check out the website.
- - - -| Path: | -lib/controllers/selenium_controller.rb - | -
| Last Update: | -Sat Feb 03 22:54:05 +0100 2007 | -
| Path: | -lib/selenium_helper.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails/acceptance_test_runner.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| BROWSERS | -= | -c :browsers, {} | -
| REUSE_EXISTING_SERVER | -= | -c :reuse_existing_server, true | -
| START_SERVER | -= | -c :start_server, false | -
| HOST | -= | -c :host, 'localhost' | -
| PORTS | -= | -c(:port_start, 3000)..c(:port_end, 3005) | -
| BASE_URL_PATH | -= | -c :base_url_path, '/' | -
| TEST_RUNNER_URL | -= | -c :test_runner_url, '/selenium/TestRunner.html' | -
| MAX_BROWSER_DURATION | -= | -c :max_browser_duration, 2*60 | -
| MULTI_WINDOW | -= | -c :multi_window, false | -
| SERVER_COMMAND | -= | -c_b :server_command do server_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../script/server') | -
- # File lib/selenium_on_rails/acceptance_test_runner.rb, line 7 -7: def c(var, default = nil) SeleniumOnRailsConfig.get var, default end --
| Path: | -lib/selenium_on_rails/fixture_loader.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails/partials_support.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
-Provides partials support to test cases so they can include other partial -test cases. -
--The partial‘s commands are returned as html table rows. -
- -| Path: | -lib/selenium_on_rails/paths.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails/renderer.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails/rselenese.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
-Renders Selenium test templates in a fashion analogous to rxml and -rjs templates. -
-- setup - open :controller => 'customer', :action => 'list' - assert_title 'Customers' --
-See SeleniumOnRails::TestBuilder -for a list of available commands. -
- -| Path: | -lib/selenium_on_rails/selenese.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails/suite_renderer.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails/test_builder_accessors.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
-The accessors available for SeleniumOnRails::TestBuilder -tests. -
--For each store_foo there‘s assert_foo, -assert_not_foo, verify_foo, verify_not_foo, -wait_for_foo, wait_for_not_foo. -
- -| Path: | -lib/selenium_on_rails/test_builder_actions.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
-The actions available for SeleniumOnRails::TestBuilder -tests. -
--For each action foo there‘s also an action -foo_and_wait. -
- -| Path: | -lib/selenium_on_rails/test_builder.rb - | -
| Last Update: | -Sat Feb 03 23:42:13 +0100 2007 | -
-Create test_builder_user_actions.rb to support actions included in -selenium-core‘s user-extensions.js -
--See test_builder_user_actions.rb.example for examples matching -selenium-core‘s user-extensions.js.sample -
- -| Path: | -lib/selenium_on_rails_config.rb - | -
| Last Update: | -Sat Feb 03 22:54:06 +0100 2007 | -
| Path: | -lib/selenium_on_rails.rb - | -
| Last Update: | -Sat Feb 03 23:38:50 +0100 2007 | -
It's often a good idea to start the test with opening /selenium/setup (see <%%= link_to 'here', :controller => 'selenium', :action => 'setup' %> for more info).
- -| <%%= @page_title %> | ||
|---|---|---|
| open | /selenium/setup | |
| open | <%%= page %> | |
| assertTitle | Home | |
More information about the commands is available here.
- -You can write comments above and below the commands, but you can only have one set of commands, i.e. one table, per test.
- -Point the browser to <%= testcase_link %> to see how this test is rendered, or to <%= suite_link %> to run the suite.
diff --git a/vendor/plugins/selenium-on-rails/generators/selenium/templates/rselenese.rhtml b/vendor/plugins/selenium-on-rails/generators/selenium/templates/rselenese.rhtml deleted file mode 100644 index 419eb368..00000000 --- a/vendor/plugins/selenium-on-rails/generators/selenium/templates/rselenese.rhtml +++ /dev/null @@ -1,14 +0,0 @@ -# It's often a good idea to start the test with 'setup'. -# See /selenium/setup for more info. - -setup -open '/' -assert_title 'Home' - -# More information about the commands is available at: -# http://release.openqa.org/selenium-core/nightly/reference.html -# See also the RDoc for SeleniumOnRails::TestBuilder. -# -# Point the browser to <%= testcase_link %> to see -# how this test is rendered, or to <%= suite_link %> to -# run the suite. diff --git a/vendor/plugins/selenium-on-rails/generators/selenium/templates/selenese.rhtml b/vendor/plugins/selenium-on-rails/generators/selenium/templates/selenese.rhtml deleted file mode 100644 index f4ccb8a9..00000000 --- a/vendor/plugins/selenium-on-rails/generators/selenium/templates/selenese.rhtml +++ /dev/null @@ -1,11 +0,0 @@ -It's often a good idea to start the test with opening /selenium/setup (see "here":/selenium/setup for more info). - -|open|/selenium/setup| -|open|/| -|assertTitle|Home| - -More information about the commands is available "here":http://release.openqa.org/selenium-core/nightly/reference.html. - -You can write comments above and below the commands, but you can only have one set of commands, i.e. one table, per test. "RedCloth":http://www.whytheluckystiff.net/ruby/redcloth/ is used for formatting if installed. - -Point the browser to "<%= testcase_link %>":<%= testcase_link %> to see how this test is rendered, or to "<%= suite_link %>":<%= suite_link %> to run the suite. diff --git a/vendor/plugins/selenium-on-rails/init.rb b/vendor/plugins/selenium-on-rails/init.rb deleted file mode 100644 index 185b5847..00000000 --- a/vendor/plugins/selenium-on-rails/init.rb +++ /dev/null @@ -1,15 +0,0 @@ -require 'selenium_on_rails_config' -envs = SeleniumOnRailsConfig.get :environments - -if envs.include? RAILS_ENV - #initialize the plugin - $LOAD_PATH << File.dirname(__FILE__) + "/lib/controllers" - require 'selenium_controller' - require File.dirname(__FILE__) + '/routes' - - SeleniumController.prepend_view_path File.expand_path(File.dirname(__FILE__) + '/lib/views') -else - #erase all traces - $LOAD_PATH.delete lib_path -end - diff --git a/vendor/plugins/selenium-on-rails/lib/controllers/selenium_controller.rb b/vendor/plugins/selenium-on-rails/lib/controllers/selenium_controller.rb deleted file mode 100644 index 02e3df8b..00000000 --- a/vendor/plugins/selenium-on-rails/lib/controllers/selenium_controller.rb +++ /dev/null @@ -1,122 +0,0 @@ -require 'webrick/httputils' - -class SeleniumController < ActionController::Base - include SeleniumOnRails::FixtureLoader - include SeleniumOnRails::Renderer - - def initialize - @result_dir = SeleniumOnRailsConfig.get(:result_dir) - end - - def setup - unless params.has_key? :keep_session - reset_session # IS THIS WORKING! NO THINK SO - @session_wiped = true - end - @cleared_tables = clear_tables params[:clear_tables].to_s - @loaded_fixtures = load_fixtures params[:fixtures].to_s - render :file => view_path('setup.rhtml'), :layout => layout_path\ - end - - def test_file - params[:testname] = '' if params[:testname].to_s == 'TestSuite.html' - filename = File.join selenium_tests_path, params[:testname] - if File.directory? filename - @suite_path = filename - render :file => view_path('test_suite.rhtml'), :layout => layout_path - elsif File.readable? filename - render_test_case filename - else - if File.directory? selenium_tests_path - render :text => 'Not found', :status => 404 - else - render :text => "Did not find the Selenium tests path (#{selenium_tests_path}). Run script/generate selenium", :status => 404 - end - end - end - - def support_file - if params[:filename].empty? - redirect_to :filename => 'TestRunner.html', :test => 'tests' - return - end - - filename = File.join selenium_path, params[:filename] - if File.file? filename - type = WEBrick::HTTPUtils::DefaultMimeTypes[$1.downcase] if filename =~ /\.(\w+)$/ - type ||= 'text/html' - send_file filename, :type => type, :disposition => 'inline', :stream => false - else - render :text => 'Not found', :status => 404 - end - end - - def record - dir = record_table - - @result = {'resultDir' => dir} - ['result', 'numTestFailures', 'numTestPasses', 'numCommandFailures', 'numCommandPasses', 'numCommandErrors', 'totalTime'].each do |item| - @result[item] = params[item] - end - - File.open(log_path(params[:logFile] || 'default.yml'), 'w') {|f| YAML.dump(@result, f)} - - render :file => view_path('record.rhtml'), :layout => layout_path - end - - def record_table - return nil unless @result_dir - - cur_result_dir = File.join(@result_dir, (params[:logFile] || "default").sub(/\.yml$/, '')) - FileUtils.mkdir_p(cur_result_dir) - File.open("#{cur_result_dir}/index.html", "wb") do |f| - f.write <