Module Selenium::Client::Extensions
In: lib/selenium/client/extensions.rb

Convenience methods not explicitely part of the protocol

Methods

Public Instance methods

These for all Ajax request to finish (Only works if you are using prototype, the wait in happenning browser side)

See davidvollbracht.com/2008/6/4/30-days-of-tech-day-3-waitforajax for more background.

[Source]

    # File lib/selenium/client/extensions.rb, line 11
11:       def wait_for_ajax(timeout_in_seconds=nil)
12:               wait_for_condition "selenium.browserbot.getCurrentWindow().Ajax.activeRequestCount == 0", timeout_in_seconds
13:             end

Wait for all Prototype effects to be processed (the wait in happenning browser side).

Credits to github.com/brynary/webrat/tree/master

[Source]

    # File lib/selenium/client/extensions.rb, line 18
18:                         def wait_for_effects(timeout_in_seconds=nil)
19:                           wait_for_condition "window.Effect.Queue.size() == 0", timeout_in_seconds
20:                         end

Wait for an element to be present (the wait in happenning browser side).

[Source]

    # File lib/selenium/client/extensions.rb, line 23
23:                   def wait_for_element(locator, timeout_in_seconds=nil)
24:                     script = "var element;\ntry {\nelement = selenium.browserbot.findElement('\#{locator}');\n} catch(e) {\nelement = null;\n}\nelement != null\n"
25: 
26:                     wait_for_condition script, timeout_in_seconds
27:                   end

Wait for a field to get a specific value (the wait in happenning browser side).

[Source]

    # File lib/selenium/client/extensions.rb, line 81
81:                   def wait_for_field_value(locator, expected_value, timeout_in_seconds=nil)
82:                     script = "var element;
83:                               try {
84:                                 element = selenium.browserbot.findElement('#{locator}');
85:                               } catch(e) {
86:                                 element = null;
87:                               }
88:                               element != null && element.value == '#{expected_value}'"
89: 
90:                     wait_for_condition script, timeout_in_seconds
91:                   end

Wait for an element to NOT be present (the wait in happenning browser side).

[Source]

    # File lib/selenium/client/extensions.rb, line 39
39:                   def wait_for_no_element(locator, timeout_in_seconds=nil)
40:                     script = "var element;\ntry {\nelement = selenium.browserbot.findElement('\#{locator}');\n} catch(e) {\nelement = null;\n}\nelement == null\n"
41: 
42:                     wait_for_condition script, timeout_in_seconds
43:                   end

Wait for some text to NOT be present (the wait in happenning browser side).

[Source]

    # File lib/selenium/client/extensions.rb, line 68
68:                   def wait_for_no_text(locator, original_text, timeout_in_seconds=nil)
69:                     script = "var element;
70:                               try {
71:                                 element = selenium.browserbot.findElement('#{locator}');
72:                               } catch(e) {
73:                                 element = null;
74:                               }
75:                               element != null && element.innerHTML != '#{original_text}'"
76: 
77:                     wait_for_condition script, time
78:                   end

Wait for some text to be present (the wait in happenning browser side).

[Source]

    # File lib/selenium/client/extensions.rb, line 55
55:                   def wait_for_text(locator, text, timeout_in_seconds=nil)
56:                     script = "var element;
57:                               try {
58:                                 element = selenium.browserbot.findElement('#{locator}');
59:                               } catch(e) {
60:                                 element = null;
61:                               }
62:                               element != null && element.innerHTML == '#{text}'"
63: 
64:                     wait_for_condition script, timeout_in_seconds
65:                   end

[Validate]