Class: Selenium::Client::JavascriptExpressionBuilder
- Inherits:
-
Object
- Object
- Selenium::Client::JavascriptExpressionBuilder
- Defined in:
- rb/lib/selenium/client/javascript_expression_builder.rb
Instance Attribute Summary (collapse)
-
- (Object) script
readonly
Returns the value of attribute script.
Instance Method Summary (collapse)
- - (Object) append(text)
- - (Object) element_value_is(expected_value)
- - (Object) element_value_is_not(expected_value)
- - (Object) find_element(locator)
- - (Object) find_text(pattern, options)
- - (Object) find_text_in_document(pattern, options)
- - (Object) find_text_in_element(pattern, options)
-
- (JavascriptExpressionBuilder) initialize(javascript_framework_name = nil)
constructor
A new instance of JavascriptExpressionBuilder.
- - (Object) javascript_framework_for(framework_name)
- - (Object) no_pending_ajax_requests
- - (Object) no_pending_effects
- - (Object) not_visible(locator)
- - (Object) quote_escaped(a_string)
- - (Object) text_match(pattern)
- - (Object) visible(locator)
- - (Object) window_script(expression)
Constructor Details
- (JavascriptExpressionBuilder) initialize(javascript_framework_name = nil)
Returns a new instance of JavascriptExpressionBuilder
7 8 9 10 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 7 def initialize(javascript_framework_name=nil) @framework = javascript_framework_for(javascript_framework_name) if javascript_framework_name @script = "" end |
Instance Attribute Details
- (Object) script (readonly)
Returns the value of attribute script
5 6 7 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 5 def script @script end |
Instance Method Details
- (Object) append(text)
12 13 14 15 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 12 def append(text) @script << text self end |
- (Object) element_value_is(expected_value)
45 46 47 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 45 def element_value_is(expected_value) append "(element != null && element.value == '#{quote_escaped(expected_value)}')" end |
- (Object) element_value_is_not(expected_value)
49 50 51 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 49 def element_value_is_not(expected_value) append "(element == null || element.value != '#{quote_escaped(expected_value)}')" end |
- (Object) find_element(locator)
33 34 35 36 37 38 39 40 41 42 43 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 33 def find_element(locator) append <<-EOS var element; try { element = selenium.browserbot.findElement('#{quote_escaped(locator)}'); } catch(e) { element = null; } EOS end |
- (Object) find_text(pattern, options)
53 54 55 56 57 58 59 60 61 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 53 def find_text(pattern, ) if [:element].nil? find_text_in_document pattern, else find_text_in_element pattern, end self end |
- (Object) find_text_in_document(pattern, options)
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 63 def find_text_in_document(pattern, ) js_regexp = case pattern when Regexp pattern.inspect else /#{pattern}/.inspect end append <<-EOS var text_match; text_match = (null != selenium.browserbot.getCurrentWindow().document.body.innerHTML.match(#{js_regexp})); EOS end |
- (Object) find_text_in_element(pattern, options)
77 78 79 80 81 82 83 84 85 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 77 def find_text_in_element(pattern, ) find_element([:element]) append <<-EOS var text_match; text_match = (element != null && #{text_match(pattern)}); EOS self end |
- (Object) javascript_framework_for(framework_name)
96 97 98 99 100 101 102 103 104 105 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 96 def javascript_framework_for(framework_name) case framework_name.to_sym when :prototype JavascriptFrameworks::Prototype when :jquery JavascriptFrameworks::JQuery else raise "Unsupported Javascript Framework: #{framework_name}" end end |
- (Object) no_pending_ajax_requests
17 18 19 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 17 def no_pending_ajax_requests append window_script("#{@framework.ajax_request_tracker} == 0") end |
- (Object) no_pending_effects
21 22 23 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 21 def no_pending_effects append window_script("Effect.Queue.size() == 0") end |
- (Object) not_visible(locator)
29 30 31 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 29 def not_visible(locator) append "!selenium.isVisible('#{quote_escaped(locator)}')" end |
- (Object) quote_escaped(a_string)
111 112 113 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 111 def quote_escaped(a_string) a_string.gsub(/\\/, "\\\\\\").gsub(/'/, %q<\\\'>) end |
- (Object) text_match(pattern)
87 88 89 90 91 92 93 94 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 87 def text_match(pattern) case pattern when Regexp "null != element.innerHTML.match(#{pattern.inspect})" else "element.innerHTML == '#{quote_escaped(pattern)}'" end end |
- (Object) visible(locator)
25 26 27 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 25 def visible(locator) append "selenium.isVisible('#{quote_escaped(locator)}')" end |
- (Object) window_script(expression)
107 108 109 |
# File 'rb/lib/selenium/client/javascript_expression_builder.rb', line 107 def window_script(expression) "selenium.browserbot.getCurrentWindow().#{expression};" end |