watir-webdriver 0.0.1.dev

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 (125) hide show
  1. data/.document +5 -0
  2. data/.gitignore +5 -0
  3. data/.gitmodules +3 -0
  4. data/LICENSE +20 -0
  5. data/README.rdoc +32 -0
  6. data/Rakefile +107 -0
  7. data/TODO +15 -0
  8. data/VERSION +1 -0
  9. data/lib/watir-webdriver.rb +74 -0
  10. data/lib/watir-webdriver/base_element.rb +347 -0
  11. data/lib/watir-webdriver/browser.rb +130 -0
  12. data/lib/watir-webdriver/browserbot.js +34 -0
  13. data/lib/watir-webdriver/collections/buttons_collection.rb +13 -0
  14. data/lib/watir-webdriver/collections/element_collection.rb +45 -0
  15. data/lib/watir-webdriver/collections/table_rows_collection.rb +14 -0
  16. data/lib/watir-webdriver/collections/text_fields_collection.rb +13 -0
  17. data/lib/watir-webdriver/container.rb +24 -0
  18. data/lib/watir-webdriver/core_ext/string.rb +22 -0
  19. data/lib/watir-webdriver/elements/button.rb +27 -0
  20. data/lib/watir-webdriver/elements/checkbox.rb +23 -0
  21. data/lib/watir-webdriver/elements/file_field.rb +20 -0
  22. data/lib/watir-webdriver/elements/form.rb +11 -0
  23. data/lib/watir-webdriver/elements/generated.rb +941 -0
  24. data/lib/watir-webdriver/elements/headings.rb +48 -0
  25. data/lib/watir-webdriver/elements/hidden.rb +18 -0
  26. data/lib/watir-webdriver/elements/image.rb +33 -0
  27. data/lib/watir-webdriver/elements/input.rb +39 -0
  28. data/lib/watir-webdriver/elements/link.rb +13 -0
  29. data/lib/watir-webdriver/elements/option.rb +36 -0
  30. data/lib/watir-webdriver/elements/radio.rb +23 -0
  31. data/lib/watir-webdriver/elements/select_list.rb +73 -0
  32. data/lib/watir-webdriver/elements/shared_radio_checkbox.rb +13 -0
  33. data/lib/watir-webdriver/elements/table.rb +18 -0
  34. data/lib/watir-webdriver/elements/table_row.rb +17 -0
  35. data/lib/watir-webdriver/elements/text_field.rb +60 -0
  36. data/lib/watir-webdriver/exception.rb +20 -0
  37. data/lib/watir-webdriver/locators/button_locator.rb +57 -0
  38. data/lib/watir-webdriver/locators/element_locator.rb +269 -0
  39. data/lib/watir-webdriver/locators/table_row_locator.rb +25 -0
  40. data/lib/watir-webdriver/locators/text_field_locator.rb +61 -0
  41. data/lib/watir-webdriver/xpath_support.rb +23 -0
  42. data/spec/element_locator_spec.rb +11 -0
  43. data/spec/spec_helper.rb +16 -0
  44. data/spec/watirspec/area_spec.rb +78 -0
  45. data/spec/watirspec/areas_spec.rb +31 -0
  46. data/spec/watirspec/browser_spec.rb +262 -0
  47. data/spec/watirspec/button_spec.rb +242 -0
  48. data/spec/watirspec/buttons_spec.rb +48 -0
  49. data/spec/watirspec/checkbox_spec.rb +272 -0
  50. data/spec/watirspec/checkboxes_spec.rb +32 -0
  51. data/spec/watirspec/dd_spec.rb +136 -0
  52. data/spec/watirspec/dds_spec.rb +31 -0
  53. data/spec/watirspec/div_spec.rb +222 -0
  54. data/spec/watirspec/divs_spec.rb +31 -0
  55. data/spec/watirspec/dl_spec.rb +136 -0
  56. data/spec/watirspec/dls_spec.rb +32 -0
  57. data/spec/watirspec/dt_spec.rb +136 -0
  58. data/spec/watirspec/dts_spec.rb +31 -0
  59. data/spec/watirspec/element_spec.rb +87 -0
  60. data/spec/watirspec/em_spec.rb +110 -0
  61. data/spec/watirspec/ems_spec.rb +32 -0
  62. data/spec/watirspec/filefield_spec.rb +119 -0
  63. data/spec/watirspec/filefields_spec.rb +32 -0
  64. data/spec/watirspec/form_spec.rb +63 -0
  65. data/spec/watirspec/forms_spec.rb +33 -0
  66. data/spec/watirspec/frame_spec.rb +140 -0
  67. data/spec/watirspec/frames_spec.rb +62 -0
  68. data/spec/watirspec/hidden_spec.rb +102 -0
  69. data/spec/watirspec/hiddens_spec.rb +32 -0
  70. data/spec/watirspec/hn_spec.rb +93 -0
  71. data/spec/watirspec/hns_spec.rb +38 -0
  72. data/spec/watirspec/image_spec.rb +207 -0
  73. data/spec/watirspec/images_spec.rb +31 -0
  74. data/spec/watirspec/label_spec.rb +75 -0
  75. data/spec/watirspec/labels_spec.rb +31 -0
  76. data/spec/watirspec/li_spec.rb +127 -0
  77. data/spec/watirspec/lib/guards.rb +59 -0
  78. data/spec/watirspec/lib/server.rb +127 -0
  79. data/spec/watirspec/lib/spec_helper.rb +79 -0
  80. data/spec/watirspec/lib/watirspec.rb +72 -0
  81. data/spec/watirspec/link_spec.rb +165 -0
  82. data/spec/watirspec/links_spec.rb +35 -0
  83. data/spec/watirspec/lis_spec.rb +31 -0
  84. data/spec/watirspec/map_spec.rb +92 -0
  85. data/spec/watirspec/maps_spec.rb +32 -0
  86. data/spec/watirspec/meta_spec.rb +22 -0
  87. data/spec/watirspec/metas_spec.rb +30 -0
  88. data/spec/watirspec/ol_spec.rb +78 -0
  89. data/spec/watirspec/ols_spec.rb +31 -0
  90. data/spec/watirspec/option_spec.rb +173 -0
  91. data/spec/watirspec/p_spec.rb +143 -0
  92. data/spec/watirspec/pre_spec.rb +125 -0
  93. data/spec/watirspec/pres_spec.rb +31 -0
  94. data/spec/watirspec/ps_spec.rb +31 -0
  95. data/spec/watirspec/radio_spec.rb +278 -0
  96. data/spec/watirspec/radios_spec.rb +32 -0
  97. data/spec/watirspec/select_list_spec.rb +318 -0
  98. data/spec/watirspec/select_lists_spec.rb +35 -0
  99. data/spec/watirspec/span_spec.rb +157 -0
  100. data/spec/watirspec/spans_spec.rb +57 -0
  101. data/spec/watirspec/spec_helper.rb +17 -0
  102. data/spec/watirspec/strong_spec.rb +89 -0
  103. data/spec/watirspec/strongs_spec.rb +32 -0
  104. data/spec/watirspec/table_bodies_spec.rb +45 -0
  105. data/spec/watirspec/table_body_spec.rb +98 -0
  106. data/spec/watirspec/table_cell_spec.rb +68 -0
  107. data/spec/watirspec/table_cells_spec.rb +47 -0
  108. data/spec/watirspec/table_footer_spec.rb +85 -0
  109. data/spec/watirspec/table_footers_spec.rb +47 -0
  110. data/spec/watirspec/table_header_spec.rb +85 -0
  111. data/spec/watirspec/table_headers_spec.rb +45 -0
  112. data/spec/watirspec/table_row_spec.rb +87 -0
  113. data/spec/watirspec/table_rows_spec.rb +50 -0
  114. data/spec/watirspec/table_spec.rb +166 -0
  115. data/spec/watirspec/tables_spec.rb +33 -0
  116. data/spec/watirspec/text_field_spec.rb +276 -0
  117. data/spec/watirspec/text_fields_spec.rb +35 -0
  118. data/spec/watirspec/ul_spec.rb +76 -0
  119. data/spec/watirspec/uls_spec.rb +33 -0
  120. data/spec/xpath_builder_spec.rb +49 -0
  121. data/support/html5/html5.idl +815 -0
  122. data/support/html5/html5_extras.idl +147 -0
  123. data/support/html5/idl_extractor.rb +73 -0
  124. data/support/html5/watir_visitor.rb +169 -0
  125. metadata +220 -0
@@ -0,0 +1,147 @@
1
+
2
+ // the-thead-element
3
+ [TagName=thead]
4
+ interface HTMLTheadElement : HTMLTableSectionElement {};
5
+
6
+
7
+ // the-dd-element
8
+ [TagName=dd]
9
+ interface HTMLDdElement : HTMLElement {};
10
+
11
+ // the-address-element
12
+ [TagName=address]
13
+ interface HTMLAddressElement : HTMLElement {};
14
+
15
+ // the-nav-element
16
+ [TagName=nav]
17
+ interface HTMLNavElement : HTMLElement {};
18
+
19
+ // the-tfoot-element
20
+ [TagName=tfoot]
21
+ interface HTMLTFootElement : HTMLTableSectionElement {};
22
+
23
+ // the-sub-and-sup-elements
24
+ [TagName=sub]
25
+ interface HTMLSubElement : HTMLElement {};
26
+ [TagName=sup]
27
+ interface HTMLSupElement : HTMLElement {};
28
+
29
+ // the-bdo-element
30
+ [TagName=bdo]
31
+ interface HTMLBdoElement : HTMLElement {};
32
+
33
+ // the-rp-element
34
+ [TagName=rp]
35
+ interface HTMLRpElement : HTMLElement {};
36
+
37
+ // the-rt-element
38
+ [TagName=rt]
39
+ interface HTMLRtElement : HTMLElement {};
40
+
41
+ // the-mark-element
42
+ [TagName=mark]
43
+ interface HTMLMarkElement : HTMLElement {};
44
+
45
+ // the-kbd-element
46
+ [TagName=kbd]
47
+ interface HTMLKbdElement : HTMLElement {};
48
+
49
+ // the-dfn-element
50
+ [TagName=dfn]
51
+ interface HTMLDfnElement : HTMLElement {};
52
+
53
+ // the-cite-element
54
+ [TagName=cite]
55
+ interface HTMLCiteElement : HTMLElement {};
56
+
57
+ // the-ins-element
58
+ [TagName=ins]
59
+ interface HTMLInsElement : HTMLModElement {};
60
+
61
+ // the-b-element
62
+ [TagName=b]
63
+ interface HTMLBElement : HTMLElement {};
64
+
65
+ // the-noscript-element
66
+ [TagName=noscript]
67
+ interface HTMLNoscriptElement : HTMLElement {};
68
+
69
+ // the-figure-element
70
+ [TagName=figure]
71
+ interface HTMLFigureElement : HTMLElement {};
72
+
73
+ // the-code-element
74
+ [TagName=code]
75
+ interface HTMLCodeElement : HTMLElement {};
76
+
77
+ // the-q-element
78
+ [TagName=q]
79
+ interface HTMLQElement : HTMLQuoteElement {};
80
+
81
+ // the-strong-element
82
+ [TagName=strong]
83
+ interface HTMLStrongElement : HTMLElement {};
84
+
85
+ // the-header-element
86
+ [TagName=header]
87
+ interface HTMLHeaderElement : HTMLElement {};
88
+
89
+ // the-hgroup-element
90
+ [TagName=hgroup]
91
+ interface HTMLHgroupElement : HTMLElement {};
92
+
93
+ // the-aside-element
94
+ [TagName=aside]
95
+ interface HTMLAsideElement : HTMLElement {};
96
+
97
+ // the-samp-element
98
+ [TagName=samp]
99
+ interface HTMLSampElement : HTMLElement {};
100
+
101
+ // the-section-element
102
+ [TagName=section]
103
+ interface HTMLSectionElement : HTMLElement {};
104
+
105
+ // the-dt-element
106
+ [TagName=dt]
107
+ interface HTMLDtElement : HTMLElement {};
108
+
109
+ // the-col-element
110
+ [TagName=col]
111
+ interface HTMLColElement : HTMLTableColElement {};
112
+
113
+ // the-i-element
114
+ [TagName=i]
115
+ interface HTMLIElement : HTMLElement {};
116
+
117
+ // the-var-element
118
+ [TagName=var]
119
+ interface HTMLVarElement : HTMLElement {};
120
+
121
+ // the-abbr-element
122
+ [TagName=abbr]
123
+ interface HTMLAbbrElement : HTMLElement {};
124
+
125
+ // the-small-element
126
+ [TagName=small]
127
+ interface HTMLSmallElement : HTMLElement {};
128
+
129
+ // the-footer-element
130
+ [TagName=footer]
131
+ interface HTMLFooterElement : HTMLElement {};
132
+
133
+ // the-ruby-element
134
+ [TagName=ruby]
135
+ interface HTMLRubyElement : HTMLElement {};
136
+
137
+ // the-article-element
138
+ [TagName=article]
139
+ interface HTMLArticleElement : HTMLElement {};
140
+
141
+ // the-del-element
142
+ [TagName=del]
143
+ interface HTMLDelElement : HTMLModElement {};
144
+
145
+ // the-em-element
146
+ [TagName=em]
147
+ interface HTMLEmElement : HTMLElement {};
@@ -0,0 +1,73 @@
1
+ # encoding: utf-8
2
+ require "nokogiri"
3
+ require "open-uri"
4
+ require "pp"
5
+ require "ruby-debug"
6
+
7
+ class IdlExtractor
8
+ def initialize(url)
9
+ @doc = Nokogiri.HTML(open(url))
10
+ @idls = {}
11
+ @extras = {}
12
+ extract
13
+ end
14
+
15
+ def write_idl_to(filepath)
16
+ File.open(filepath, "w") do |file|
17
+ @idls.values.each { |idl| file.puts(idl) }
18
+ end
19
+ end
20
+
21
+ def write_extras_to(filepath)
22
+ File.open(filepath, "w") do |file|
23
+ @extras.values.each { |extra| file.puts(extra) }
24
+ end
25
+ end
26
+
27
+ def extract
28
+ # get the HTMLElement interface, which doesn't follow the normal structure
29
+ unless html_header = @doc.search("//h4[@id='elements-in-the-dom']").first
30
+ raise "could not find header with id 'elements-in-the-dom' (for HTMLElement)"
31
+ end
32
+
33
+ idl = html_header.xpath("following-sibling::pre[@class='idl']").first.text
34
+ @idls['htmlelement'] = "// HTMLElement\n#{idl}"
35
+
36
+ # then get all the others
37
+ element_headers = @doc.search('//h4').select { |e| e['id'] =~ /the-.+-element/ }
38
+ raise "no elements found in the spec!" if element_headers.empty?
39
+ element_headers.map { |e| extract_idl_from(e) }
40
+ end
41
+
42
+
43
+ def extract_idl_from(node)
44
+ dl = node.xpath("following-sibling::dl[@class='element' and position()=1]").first
45
+ unless dl
46
+ short_id = node['id'][/^the-.+-element/, 0]
47
+ $stderr.puts "could not find 'DOM interface' section for #{node['id']}"
48
+ $stderr.puts " already have #{short_id}" if @idls.has_key?(short_id) || @extras.has_key?(short_id)
49
+ return
50
+ end
51
+
52
+ prefix = "\n\n// #{node['id']}\n" << tag_name_ext_attr_for(node)
53
+
54
+ if idl_node = dl.css("pre.idl").first
55
+ @idls[node['id']] = prefix << idl_node.text
56
+ else
57
+ if extra_node = dl.css("dt ~ dd").last
58
+ @extras[node['id']] = prefix << extra_node.text
59
+ else
60
+ raise "could not find IDL section for #{node['id']}"
61
+ end
62
+ end
63
+ end
64
+
65
+ def tag_name_ext_attr_for(node)
66
+ if node['id'] =~ /^the-(.+)-element/
67
+ "[TagName=#{$1}]\n"
68
+ else
69
+ raise "not sure what tag name to use for #{node['id']}"
70
+ end
71
+ end
72
+
73
+ end # IdlExtractor
@@ -0,0 +1,169 @@
1
+ # encoding: utf-8
2
+ require "rubygems"
3
+ require "webidl"
4
+ require "ruby-debug"
5
+ require "pp"
6
+
7
+ Debugger.start
8
+ Debugger.settings[:autoeval] = true
9
+ Debugger.settings[:autolist] = 1
10
+
11
+
12
+ class WatirVisitor < WebIDL::RubySexpVisitor
13
+
14
+ SPECIALS = {
15
+ 'img' => 'image'
16
+ }
17
+
18
+ def self.generate_from(file)
19
+ result = []
20
+ result << "# Autogenerated from the HTML5 specification. Edits may be lost."
21
+ result << "module Watir"
22
+
23
+ gen = WebIDL::Generator.new(new)
24
+ code = gen.generate(File.read(file))
25
+ code = " " + code.split("\n").join("\n ")
26
+
27
+ result << code
28
+ result << "end"
29
+
30
+ result.join("\n")
31
+ end
32
+
33
+ def visit_interface(interface)
34
+ name = interface.name
35
+ parent = interface.inherits.first
36
+
37
+ return unless name =~ /^HTML/
38
+
39
+ if name == "HTMLElement"
40
+ parent = 'BaseElement'
41
+ # elsif !(parent && parent.name =~ /^HTMLElement/)
42
+ # return
43
+ else
44
+ parent = parent.name
45
+ end
46
+
47
+ element_class interface.name,
48
+ tag_name_from(interface),
49
+ interface.members.select { |e| e.kind_of?(WebIDL::Ast::Attribute) },
50
+ parent
51
+ end
52
+
53
+ def visit_module(mod)
54
+ # ignored
55
+ end
56
+
57
+ def visit_implements_statement(stmt)
58
+ # ignored
59
+ end
60
+
61
+ private
62
+
63
+ def tag_name_from(interface)
64
+ _, tag_name = interface.extended_attributes.find { |k,v| k == "TagName" }
65
+ tag_name || paramify(interface.name)
66
+ end
67
+
68
+ def element_class(name, tag_name, attributes, parent)
69
+ [:class, classify(name), [:const, classify(parent)],
70
+ [:scope, [:block] + [identifier_call(tag_name)]],
71
+ [:scope, [:block] + [container_call(tag_name)]],
72
+ [:scope, [:block] + [collection_call(tag_name)]],
73
+ [:scope, [:block] + [attributes_call(attributes)]]
74
+ ]
75
+ end
76
+
77
+ def classify(name)
78
+ if name =~ /^HTML(.+)Element$/
79
+ $1
80
+ else
81
+ name
82
+ end
83
+ end
84
+
85
+ def paramify(str)
86
+ if SPECIALS.has_key?(str)
87
+ SPECIALS[str]
88
+ else
89
+ classify(str).snake_case
90
+ end
91
+ end
92
+
93
+ def attributes_call(attributes)
94
+ return if attributes.empty?
95
+
96
+ attrs = Hash.new { |hash, key| hash[key] = [] }
97
+ attributes.each do |a|
98
+ attrs[ruby_type_for(a.type)] << a.name.snake_case
99
+ end
100
+
101
+ call :attributes, [[:hash] + attrs.map { |type, names| [[:lit, type], literal_array(names)] }.flatten(1)]
102
+ end
103
+
104
+ def identifier_call(tag_name)
105
+ call :identifier, [literal_hash(:tag_name => tag_name)]
106
+ end
107
+
108
+ def container_call(name)
109
+ call :container_method, [[:lit, paramify(name).to_sym]]
110
+ end
111
+
112
+ def collection_call(name)
113
+ call :collection_method, [[:lit, pluralize(paramify(name)).to_sym]]
114
+ end
115
+
116
+ def literal_hash(hash)
117
+ [:hash] + hash.map { |k, v| [[:lit, k.to_sym], [:lit, v]] }.flatten(1)
118
+ end
119
+
120
+ def literal_array(arr)
121
+ [:array] + arr.map { |e| [:lit, e.to_sym] }
122
+ end
123
+
124
+ def call(name, args)
125
+ [:call, nil, name.to_sym, [:arglist] + args]
126
+ end
127
+
128
+ def pluralize(name)
129
+ name[/s$/] ? name : name + 's'
130
+ end
131
+
132
+ def ruby_type_for(type)
133
+ case type.name.to_s
134
+ when 'DOMString', 'any'
135
+ :string
136
+ when 'unsigned long', 'long', 'integer', 'short', 'unsigned short'
137
+ :int
138
+ when 'float'
139
+ :float
140
+ when 'Function'
141
+ :function
142
+ when 'boolean'
143
+ :bool
144
+ when 'Document'
145
+ :document
146
+ when 'DOMTokenList', 'DOMSettableTokenList'
147
+ :token_list
148
+ when 'DOMStringMap'
149
+ :string_map
150
+ when 'HTMLPropertiesCollection'
151
+ :properties_collection
152
+ when /HTML(.*)Element/
153
+ :html_element
154
+ when /HTML(.*)Collection/
155
+ :html_collection
156
+ when 'CSSStyleDeclaration'
157
+ :style
158
+ when /.+List$/
159
+ :list
160
+ when 'Date'
161
+ :date
162
+ when 'WindowProxy', 'ValidityState', 'MediaError', 'TimeRanges'
163
+ :string
164
+ else
165
+ raise "unknown type: #{type.name}"
166
+ end
167
+ end
168
+
169
+ end
metadata ADDED
@@ -0,0 +1,220 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: watir-webdriver
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.dev
5
+ platform: ruby
6
+ authors:
7
+ - Jari Bakken
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-12 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: selenium-webdriver
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.10
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: webidl
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: sinatra
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ description: WebDriver-backed Watir
56
+ email: jari.bakken@gmail.com
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - LICENSE
63
+ - README.rdoc
64
+ files:
65
+ - .document
66
+ - .gitignore
67
+ - .gitmodules
68
+ - LICENSE
69
+ - README.rdoc
70
+ - Rakefile
71
+ - TODO
72
+ - VERSION
73
+ - lib/watir-webdriver.rb
74
+ - lib/watir-webdriver/base_element.rb
75
+ - lib/watir-webdriver/browser.rb
76
+ - lib/watir-webdriver/browserbot.js
77
+ - lib/watir-webdriver/collections/buttons_collection.rb
78
+ - lib/watir-webdriver/collections/element_collection.rb
79
+ - lib/watir-webdriver/collections/table_rows_collection.rb
80
+ - lib/watir-webdriver/collections/text_fields_collection.rb
81
+ - lib/watir-webdriver/container.rb
82
+ - lib/watir-webdriver/core_ext/string.rb
83
+ - lib/watir-webdriver/elements/button.rb
84
+ - lib/watir-webdriver/elements/checkbox.rb
85
+ - lib/watir-webdriver/elements/file_field.rb
86
+ - lib/watir-webdriver/elements/form.rb
87
+ - lib/watir-webdriver/elements/generated.rb
88
+ - lib/watir-webdriver/elements/headings.rb
89
+ - lib/watir-webdriver/elements/hidden.rb
90
+ - lib/watir-webdriver/elements/image.rb
91
+ - lib/watir-webdriver/elements/input.rb
92
+ - lib/watir-webdriver/elements/link.rb
93
+ - lib/watir-webdriver/elements/option.rb
94
+ - lib/watir-webdriver/elements/radio.rb
95
+ - lib/watir-webdriver/elements/select_list.rb
96
+ - lib/watir-webdriver/elements/shared_radio_checkbox.rb
97
+ - lib/watir-webdriver/elements/table.rb
98
+ - lib/watir-webdriver/elements/table_row.rb
99
+ - lib/watir-webdriver/elements/text_field.rb
100
+ - lib/watir-webdriver/exception.rb
101
+ - lib/watir-webdriver/locators/button_locator.rb
102
+ - lib/watir-webdriver/locators/element_locator.rb
103
+ - lib/watir-webdriver/locators/table_row_locator.rb
104
+ - lib/watir-webdriver/locators/text_field_locator.rb
105
+ - lib/watir-webdriver/xpath_support.rb
106
+ - spec/element_locator_spec.rb
107
+ - spec/spec_helper.rb
108
+ - spec/xpath_builder_spec.rb
109
+ - support/html5/html5.idl
110
+ - support/html5/html5_extras.idl
111
+ - support/html5/idl_extractor.rb
112
+ - support/html5/watir_visitor.rb
113
+ has_rdoc: true
114
+ homepage: http://github.com/jarib/watir-webdriver
115
+ licenses: []
116
+
117
+ post_install_message:
118
+ rdoc_options:
119
+ - --charset=UTF-8
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: "0"
127
+ version:
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">"
131
+ - !ruby/object:Gem::Version
132
+ version: 1.3.1
133
+ version:
134
+ requirements: []
135
+
136
+ rubyforge_project:
137
+ rubygems_version: 1.3.5
138
+ signing_key:
139
+ specification_version: 3
140
+ summary: Watir on WebDriver
141
+ test_files:
142
+ - spec/element_locator_spec.rb
143
+ - spec/spec_helper.rb
144
+ - spec/watirspec/area_spec.rb
145
+ - spec/watirspec/areas_spec.rb
146
+ - spec/watirspec/browser_spec.rb
147
+ - spec/watirspec/button_spec.rb
148
+ - spec/watirspec/buttons_spec.rb
149
+ - spec/watirspec/checkbox_spec.rb
150
+ - spec/watirspec/checkboxes_spec.rb
151
+ - spec/watirspec/dd_spec.rb
152
+ - spec/watirspec/dds_spec.rb
153
+ - spec/watirspec/div_spec.rb
154
+ - spec/watirspec/divs_spec.rb
155
+ - spec/watirspec/dl_spec.rb
156
+ - spec/watirspec/dls_spec.rb
157
+ - spec/watirspec/dt_spec.rb
158
+ - spec/watirspec/dts_spec.rb
159
+ - spec/watirspec/element_spec.rb
160
+ - spec/watirspec/em_spec.rb
161
+ - spec/watirspec/ems_spec.rb
162
+ - spec/watirspec/filefield_spec.rb
163
+ - spec/watirspec/filefields_spec.rb
164
+ - spec/watirspec/form_spec.rb
165
+ - spec/watirspec/forms_spec.rb
166
+ - spec/watirspec/frame_spec.rb
167
+ - spec/watirspec/frames_spec.rb
168
+ - spec/watirspec/hidden_spec.rb
169
+ - spec/watirspec/hiddens_spec.rb
170
+ - spec/watirspec/hn_spec.rb
171
+ - spec/watirspec/hns_spec.rb
172
+ - spec/watirspec/image_spec.rb
173
+ - spec/watirspec/images_spec.rb
174
+ - spec/watirspec/label_spec.rb
175
+ - spec/watirspec/labels_spec.rb
176
+ - spec/watirspec/li_spec.rb
177
+ - spec/watirspec/lib/guards.rb
178
+ - spec/watirspec/lib/server.rb
179
+ - spec/watirspec/lib/spec_helper.rb
180
+ - spec/watirspec/lib/watirspec.rb
181
+ - spec/watirspec/link_spec.rb
182
+ - spec/watirspec/links_spec.rb
183
+ - spec/watirspec/lis_spec.rb
184
+ - spec/watirspec/map_spec.rb
185
+ - spec/watirspec/maps_spec.rb
186
+ - spec/watirspec/meta_spec.rb
187
+ - spec/watirspec/metas_spec.rb
188
+ - spec/watirspec/ol_spec.rb
189
+ - spec/watirspec/ols_spec.rb
190
+ - spec/watirspec/option_spec.rb
191
+ - spec/watirspec/p_spec.rb
192
+ - spec/watirspec/pre_spec.rb
193
+ - spec/watirspec/pres_spec.rb
194
+ - spec/watirspec/ps_spec.rb
195
+ - spec/watirspec/radio_spec.rb
196
+ - spec/watirspec/radios_spec.rb
197
+ - spec/watirspec/select_list_spec.rb
198
+ - spec/watirspec/select_lists_spec.rb
199
+ - spec/watirspec/span_spec.rb
200
+ - spec/watirspec/spans_spec.rb
201
+ - spec/watirspec/spec_helper.rb
202
+ - spec/watirspec/strong_spec.rb
203
+ - spec/watirspec/strongs_spec.rb
204
+ - spec/watirspec/table_bodies_spec.rb
205
+ - spec/watirspec/table_body_spec.rb
206
+ - spec/watirspec/table_cell_spec.rb
207
+ - spec/watirspec/table_cells_spec.rb
208
+ - spec/watirspec/table_footer_spec.rb
209
+ - spec/watirspec/table_footers_spec.rb
210
+ - spec/watirspec/table_header_spec.rb
211
+ - spec/watirspec/table_headers_spec.rb
212
+ - spec/watirspec/table_row_spec.rb
213
+ - spec/watirspec/table_rows_spec.rb
214
+ - spec/watirspec/table_spec.rb
215
+ - spec/watirspec/tables_spec.rb
216
+ - spec/watirspec/text_field_spec.rb
217
+ - spec/watirspec/text_fields_spec.rb
218
+ - spec/watirspec/ul_spec.rb
219
+ - spec/watirspec/uls_spec.rb
220
+ - spec/xpath_builder_spec.rb