iegrip 0.0.4 → 0.0.7
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.
- checksums.yaml +4 -4
- data/lib/iegrip/GripWrapper.rb +1 -1
- data/lib/iegrip/version.rb +1 -1
- data/lib/iegrip.rb +322 -181
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15dce6f879811dec94442752a9906a53fc3f05fa
|
4
|
+
data.tar.gz: b4f8c46ffd91c844363c31509e2bc3b4cdb78545
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15a2e3754833a7ae5c7ac9c9f9cd7b14a247fee7f89c56747115fd888289c6af93e65e45a996a78b11ae2cf0f68cc485bdfc3e12254f7a7d48eaa4c89eede9dc
|
7
|
+
data.tar.gz: 6194b8b6541ab78cf42daf2237018f57d18110ec7dd92c27a0a112b5b5da3ef5e798ce2f704759e9853e678e3b2d378a38fcbf9ba6cf2151ee89acf17cf42f2f
|
data/lib/iegrip/GripWrapper.rb
CHANGED
data/lib/iegrip/version.rb
CHANGED
data/lib/iegrip.rb
CHANGED
@@ -39,12 +39,15 @@ module IEgrip
|
|
39
39
|
|
40
40
|
COMPLETE_STATE = 4
|
41
41
|
def wait_stable()
|
42
|
-
|
43
|
-
sleep 0.5
|
44
|
-
end
|
42
|
+
stable_counter = 0
|
45
43
|
loop do
|
46
|
-
break if
|
47
|
-
|
44
|
+
break if stable_counter >= 3
|
45
|
+
if (@raw_object.Busy != true) and (@raw_object.ReadyState == COMPLETE_STATE)
|
46
|
+
stable_counter += 1
|
47
|
+
else
|
48
|
+
sleep 0.5
|
49
|
+
stable_counter = 0
|
50
|
+
end
|
48
51
|
end
|
49
52
|
end
|
50
53
|
|
@@ -53,81 +56,73 @@ module IEgrip
|
|
53
56
|
end
|
54
57
|
end
|
55
58
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
NODETYPE_DIC = {
|
61
|
-
1 => :ELEMENT_NODE,
|
62
|
-
2 => :ATTRIBUTE_NODE,
|
63
|
-
3 => :TEXT_NODE,
|
64
|
-
4 => :CDATA_SECTION_NODE,
|
65
|
-
5 => :ENTITY_REFERENCE_NODE,
|
66
|
-
6 => :ENTITY_NODE,
|
67
|
-
7 => :PROCESSING_INSTRUCTION_NODE,
|
68
|
-
8 => :COMMENT_NODE,
|
69
|
-
9 => :DOCUMENT_NODE,
|
70
|
-
10 => :DOCUMENT_TYPE_NODE,
|
71
|
-
11 => :DOCUMENT_FRAGMENT_NODE,
|
72
|
-
12 => :NOTATION_NODE,
|
73
|
-
}
|
74
|
-
def tagName
|
75
|
-
case self.nodeType
|
76
|
-
when 3
|
77
|
-
@raw_object.nodeName
|
78
|
-
else
|
79
|
-
@raw_object.tagName.downcase
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def nodeName
|
84
|
-
@raw_object.nodeName
|
59
|
+
module ElementParent
|
60
|
+
def parentNode
|
61
|
+
raw_element = @raw_object.parentNode()
|
62
|
+
raw_element ? HTMLElement.new(raw_element, @ie_obj) : nil
|
85
63
|
end
|
86
64
|
|
87
|
-
def
|
88
|
-
|
89
|
-
|
65
|
+
def parentElement
|
66
|
+
raw_parent = @raw_object.parentElement
|
67
|
+
raw_parent ? HTMLElement.new(raw_parent, @ie_obj) : nil
|
90
68
|
end
|
91
69
|
|
92
|
-
def
|
93
|
-
|
70
|
+
def getParentForm()
|
71
|
+
parent_element = self.parentElement
|
72
|
+
loop do
|
73
|
+
if parent_element == nil
|
74
|
+
return nil
|
75
|
+
elsif parent_element.tagName == "form"
|
76
|
+
return parent_element
|
77
|
+
else
|
78
|
+
parent_element = parent_element.parentElement
|
79
|
+
end
|
80
|
+
end
|
94
81
|
end
|
95
|
-
|
82
|
+
end
|
83
|
+
|
84
|
+
module ElementChild
|
96
85
|
def childNodes
|
97
86
|
raw_childNodes = @raw_object.childNodes
|
98
87
|
raw_childNodes ? NodeList.new(raw_childNodes, @ie_obj) : nil
|
99
88
|
end
|
100
89
|
|
101
|
-
def
|
102
|
-
|
103
|
-
|
90
|
+
def childElements
|
91
|
+
raw_childNodes = @raw_object.childNodes
|
92
|
+
raw_childNodes ? HTMLElementCollection.new(raw_childNodes, @ie_obj) : nil
|
104
93
|
end
|
105
94
|
|
106
95
|
def previousSibling
|
107
96
|
raw_node = @raw_object.previousSibling()
|
108
|
-
raw_node ?
|
97
|
+
raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
|
109
98
|
end
|
110
99
|
|
111
100
|
def nextSibling
|
112
101
|
raw_node = @raw_object.nextSibling()
|
113
|
-
raw_node ?
|
102
|
+
raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
|
114
103
|
end
|
115
104
|
|
116
105
|
def firstChild
|
117
106
|
raw_node = @raw_object.firstChild()
|
118
|
-
raw_node ?
|
107
|
+
raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
|
119
108
|
end
|
120
109
|
|
121
110
|
def lastChild
|
122
111
|
raw_node = @raw_object.lastChild()
|
123
|
-
raw_node ?
|
112
|
+
raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
|
124
113
|
end
|
125
114
|
|
126
115
|
def hasChildNodes()
|
127
|
-
#@raw_object.hasChildNodes() # This method return WIN32OLE object. not boolean
|
128
116
|
@raw_object.childNodes.length > 0
|
129
117
|
end
|
130
118
|
|
119
|
+
def hasChildElements()
|
120
|
+
@raw_object.childNodes.each {|subnode|
|
121
|
+
return true if (subnode.nodeType != 3) and (subnode.nodeType != 8)
|
122
|
+
}
|
123
|
+
false
|
124
|
+
end
|
125
|
+
|
131
126
|
def contains(node)
|
132
127
|
@raw_object.contains(toRaw(node))
|
133
128
|
end
|
@@ -136,81 +131,225 @@ module IEgrip
|
|
136
131
|
@raw_object.isEqualNode(toRaw(node))
|
137
132
|
end
|
138
133
|
|
139
|
-
def
|
140
|
-
|
141
|
-
|
134
|
+
def struct(level=0)
|
135
|
+
struct = []
|
136
|
+
self.childElements.each {|subelement|
|
137
|
+
inner,outer = get_inner(subelement)
|
138
|
+
if subelement.hasChildElements()
|
139
|
+
sub_struct = subelement.struct(level+1)
|
140
|
+
if sub_struct.size > 0
|
141
|
+
struct.push (" " * level) + "<#{inner}>"
|
142
|
+
struct += sub_struct
|
143
|
+
struct.push (" " * level) + "</#{subelement.tagName}>"
|
144
|
+
else
|
145
|
+
struct.push (" " * level) + "<#{inner} />"
|
146
|
+
end
|
147
|
+
else
|
148
|
+
if outer
|
149
|
+
struct.push (" " * level) + "<#{inner}>#{outer}</#{subelement.tagName}>"
|
150
|
+
else
|
151
|
+
struct.push (" " * level) + "<#{inner} />"
|
152
|
+
end
|
153
|
+
end
|
154
|
+
}
|
155
|
+
return struct
|
142
156
|
end
|
143
157
|
|
158
|
+
private
|
159
|
+
|
160
|
+
def get_inner(tag)
|
161
|
+
inner = [tag.tagName]
|
162
|
+
outer = nil
|
163
|
+
inner.push "id='#{tag.ID}'" if tag.ID != ""
|
164
|
+
case tag.tagName
|
165
|
+
when "a"
|
166
|
+
href = tag.href
|
167
|
+
if href.size > 20
|
168
|
+
href = href[0,19] + "..."
|
169
|
+
end
|
170
|
+
inner.push "href='#{href}'"
|
171
|
+
when "img"
|
172
|
+
inner.push "src='#{tag.src}'"
|
173
|
+
when "input"
|
174
|
+
inner.push "type='#{tag.Type}'"
|
175
|
+
when "form"
|
176
|
+
inner.push "action='#{tag.action}' method='#{tag.Method}'"
|
177
|
+
when "option"
|
178
|
+
inner.push "value='#{tag.value}'"
|
179
|
+
when "style"
|
180
|
+
inner.push "type='#{tag.Type}'"
|
181
|
+
end
|
182
|
+
unless tag.hasChildElements
|
183
|
+
innerText = tag.innerText
|
184
|
+
if innerText =~ /^<!--(.+)-->$/
|
185
|
+
if $1.size > 20
|
186
|
+
outer = "<!--#{$1[0,19]}...-->"
|
187
|
+
else
|
188
|
+
outer = innerText
|
189
|
+
end
|
190
|
+
innerText = ""
|
191
|
+
end
|
192
|
+
if innerText.size > 20
|
193
|
+
innerText = innerText[0,19] + "..."
|
194
|
+
end
|
195
|
+
inner.push "text='#{innerText}'" if innerText != ""
|
196
|
+
end
|
197
|
+
return [inner.join(' '), outer]
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
module GetElements
|
144
202
|
def getElementsByName(name)
|
145
203
|
raw_col = @raw_object.getElementsByName(name)
|
146
|
-
raw_col ?
|
204
|
+
raw_col ? HTMLElementCollection.new(raw_col, @ie_obj) : nil
|
147
205
|
end
|
148
206
|
|
207
|
+
|
149
208
|
def getElementsByTagName(tag_name)
|
150
209
|
raw_col = @raw_object.getElementsByTagName(tag_name)
|
151
|
-
raw_col ?
|
210
|
+
raw_col ? HTMLElementCollection.new(raw_col, @ie_obj) : nil
|
152
211
|
end
|
153
|
-
alias
|
212
|
+
alias elements getElementsByTagName
|
154
213
|
|
155
|
-
def
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
214
|
+
def getElementsByTitle(target_str)
|
215
|
+
get_elements_by_key(target_str, "VALUE")
|
216
|
+
end
|
217
|
+
def getElementsByValue(target_str)
|
218
|
+
get_elements_by_key(target_str, "VALUE")
|
219
|
+
end
|
220
|
+
def getElementsByText(target_str)
|
221
|
+
get_elements_by_key(target_str, "INNERTEXT")
|
222
|
+
end
|
223
|
+
|
224
|
+
def getElementByTitle(target_str)
|
225
|
+
taglist = get_elements_by_key(target_str, "VALUE")
|
226
|
+
taglist[0]
|
227
|
+
end
|
228
|
+
def getElementByValue(target_str)
|
229
|
+
taglist = get_elements_by_key(target_str, "VALUE")
|
230
|
+
taglist[0]
|
231
|
+
end
|
232
|
+
def getElementByText(target_str)
|
233
|
+
taglist = get_elements_by_key(target_str, "INNERTEXT")
|
234
|
+
taglist[0]
|
235
|
+
end
|
236
|
+
def getElementByName(target_str)
|
237
|
+
taglist = get_elements_by_key(target_str, "NAME")
|
238
|
+
taglist[0]
|
239
|
+
end
|
240
|
+
|
241
|
+
private
|
242
|
+
|
243
|
+
def get_elements_by_key(target_str, key_type)
|
244
|
+
tag_list = []
|
245
|
+
@raw_object.all.each {|tag_element|
|
246
|
+
case key_type
|
247
|
+
when "INNERTEXT"
|
248
|
+
key_string = tag_element.innerText
|
249
|
+
when "VALUE"
|
250
|
+
key_string = tag_element.value
|
251
|
+
when "NAME"
|
252
|
+
key_string = tag_element.name
|
253
|
+
when "ID"
|
254
|
+
key_string = tag_element.ID
|
168
255
|
else
|
169
|
-
|
256
|
+
return nil
|
257
|
+
end
|
258
|
+
if key_string == target_str
|
259
|
+
tag_list.push HTMLElement.new(tag_element, @ie_obj)
|
170
260
|
end
|
171
261
|
}
|
172
|
-
|
262
|
+
|
263
|
+
return tag_list
|
173
264
|
end
|
174
265
|
end
|
175
266
|
|
176
267
|
# ========================
|
177
|
-
#
|
268
|
+
# Node
|
178
269
|
# ========================
|
179
|
-
class
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
270
|
+
class Node < GripWrapper
|
271
|
+
NODETYPE_DIC = {
|
272
|
+
1 => :ELEMENT_NODE,
|
273
|
+
2 => :ATTRIBUTE_NODE,
|
274
|
+
3 => :TEXT_NODE,
|
275
|
+
4 => :CDATA_SECTION_NODE,
|
276
|
+
5 => :ENTITY_REFERENCE_NODE,
|
277
|
+
6 => :ENTITY_NODE,
|
278
|
+
7 => :PROCESSING_INSTRUCTION_NODE,
|
279
|
+
8 => :COMMENT_NODE,
|
280
|
+
9 => :DOCUMENT_NODE,
|
281
|
+
10 => :DOCUMENT_TYPE_NODE,
|
282
|
+
11 => :DOCUMENT_FRAGMENT_NODE,
|
283
|
+
12 => :NOTATION_NODE,
|
284
|
+
}
|
285
|
+
|
286
|
+
def nodeName
|
287
|
+
@raw_object.nodeName
|
288
|
+
end
|
289
|
+
|
290
|
+
def nodeType
|
291
|
+
@raw_object.nodetype
|
292
|
+
end
|
293
|
+
|
294
|
+
def nodeTypeName
|
295
|
+
nodetype = @raw_object.nodetype
|
296
|
+
NODETYPE_DIC[nodetype] || :UNKNOWN
|
297
|
+
end
|
298
|
+
|
299
|
+
def inspect
|
300
|
+
case self.nodeType
|
301
|
+
when 3
|
302
|
+
"<#{self.class}, Name:#{self.nodeName}, Text:#{self.wholeText.inspect}>"
|
184
303
|
else
|
185
|
-
|
304
|
+
"<#{self.class}, Name:#{self.nodeName}>"
|
186
305
|
end
|
187
306
|
end
|
188
307
|
|
308
|
+
end
|
309
|
+
|
310
|
+
# ========================
|
311
|
+
# IE.Document
|
312
|
+
# ========================
|
313
|
+
class Document < Node
|
314
|
+
include ElementChild
|
315
|
+
include GetElements
|
316
|
+
|
189
317
|
def head()
|
190
318
|
raw_head = @raw_object.head
|
191
|
-
raw_head ?
|
319
|
+
raw_head ? HTMLElement.new(raw_head, @ie_obj) : nil
|
192
320
|
end
|
193
321
|
|
194
322
|
def body()
|
195
|
-
|
196
|
-
#raw_body ? TagElementCollection.new(raw_body, @ie_obj)[0] : nil
|
197
|
-
TagElement.new(@raw_object.body, @ie_obj)
|
323
|
+
HTMLElement.new(@raw_object.body, @ie_obj)
|
198
324
|
end
|
199
325
|
|
200
326
|
def all
|
201
327
|
raw_all = @raw_object.all
|
202
|
-
raw_all ?
|
328
|
+
raw_all ? HTMLElementCollection.new(raw_all, @ie_obj) : nil
|
203
329
|
end
|
204
330
|
|
331
|
+
def frames(index=nil)
|
332
|
+
if index
|
333
|
+
return(nil) if index >= @raw_object.Frames.length
|
334
|
+
Frames.new(@raw_object.frames, @ie_obj)[index]
|
335
|
+
else
|
336
|
+
Frames.new(@raw_object.frames, @ie_obj)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
340
|
+
def getElementById(element_id)
|
341
|
+
raw_element = @raw_object.getElementById(element_id)
|
342
|
+
raw_element ? HTMLElement.new(raw_element, @ie_obj) : nil
|
343
|
+
end
|
205
344
|
|
206
345
|
def documentElement
|
207
346
|
raw_element = @raw_object.documentElement()
|
208
|
-
raw_element ?
|
347
|
+
raw_element ? HTMLElement.new(raw_element, @ie_obj) : nil
|
209
348
|
end
|
210
349
|
|
211
350
|
def createElement(tag_name)
|
212
351
|
raw_element = @raw_object.createElement(tag_name)
|
213
|
-
|
352
|
+
HTMLElement.new(raw_element, @ie_obj)
|
214
353
|
end
|
215
354
|
|
216
355
|
def createAttribute(attr_name)
|
@@ -221,17 +360,24 @@ module IEgrip
|
|
221
360
|
end
|
222
361
|
|
223
362
|
# ========================
|
224
|
-
#
|
363
|
+
# HTML Element
|
225
364
|
# ========================
|
226
|
-
class
|
365
|
+
class HTMLElement < Node
|
366
|
+
include ElementParent
|
367
|
+
include ElementChild
|
368
|
+
include GetElements
|
227
369
|
def tagname
|
228
|
-
|
370
|
+
if self.nodeType == 8
|
371
|
+
"comment"
|
372
|
+
else
|
373
|
+
@raw_object.tagName.downcase
|
374
|
+
end
|
229
375
|
end
|
230
376
|
|
231
377
|
def text=(set_text)
|
232
|
-
case
|
233
|
-
when "
|
234
|
-
option_list =
|
378
|
+
case self.tagname
|
379
|
+
when "select"
|
380
|
+
option_list = elements("OPTION")
|
235
381
|
option_list.each {|option_element|
|
236
382
|
if option_element.innerText == set_text
|
237
383
|
option_element.selected = true
|
@@ -243,6 +389,7 @@ module IEgrip
|
|
243
389
|
end
|
244
390
|
end
|
245
391
|
|
392
|
+
|
246
393
|
def inspect()
|
247
394
|
case tagName
|
248
395
|
when "SELECT"
|
@@ -262,6 +409,10 @@ module IEgrip
|
|
262
409
|
def to_s
|
263
410
|
@raw_object.value
|
264
411
|
end
|
412
|
+
def value
|
413
|
+
@raw_object.value
|
414
|
+
end
|
415
|
+
alias text value
|
265
416
|
|
266
417
|
def click
|
267
418
|
if @ie_obj.version >= 10
|
@@ -296,35 +447,10 @@ module IEgrip
|
|
296
447
|
@ie_obj.wait_stable()
|
297
448
|
end
|
298
449
|
|
299
|
-
def getElementsByTagName(tag_name)
|
300
|
-
raw_collection = @raw_object.getElementsByTagName(tag_name)
|
301
|
-
raw_collection ? TagElementCollection.new(raw_collection, @ie_obj) : nil
|
302
|
-
end
|
303
|
-
alias tags getElementsByTagName
|
304
|
-
|
305
450
|
def all
|
306
|
-
|
451
|
+
HTMLElementCollection.new(@raw_object.all, @ie_obj)
|
307
452
|
end
|
308
453
|
|
309
|
-
def parentElement
|
310
|
-
raw_parent = @raw_object.parentElement
|
311
|
-
raw_parent ? TagElement.new(raw_parent, @ie_obj) : nil
|
312
|
-
end
|
313
|
-
|
314
|
-
def getParentForm()
|
315
|
-
puts "getParentForm() is called."
|
316
|
-
parent_tag = self.parentElement
|
317
|
-
loop do
|
318
|
-
puts "parent_tag = #{parent_tag.inspect}"
|
319
|
-
if parent_tag == nil
|
320
|
-
return nil
|
321
|
-
elsif parent_tag.tagName == "form"
|
322
|
-
return parent_tag
|
323
|
-
else
|
324
|
-
parent_tag = parent_tag.parentElement
|
325
|
-
end
|
326
|
-
end
|
327
|
-
end
|
328
454
|
|
329
455
|
def export(filename)
|
330
456
|
case self.tagName.downcase
|
@@ -359,6 +485,32 @@ module IEgrip
|
|
359
485
|
raw_attr ? Attr.new(raw_attr, @ie_obj) : nil
|
360
486
|
end
|
361
487
|
|
488
|
+
def insertBefore(newElement, anchor_element=nil)
|
489
|
+
@raw_object.insertBefore(toRaw(newElement), toRaw(anchor_element))
|
490
|
+
end
|
491
|
+
|
492
|
+
def appendChild(newElement)
|
493
|
+
@raw_object.appendChild(toRaw(newElement))
|
494
|
+
end
|
495
|
+
|
496
|
+
def removeChild(element)
|
497
|
+
@raw_object.removeChild(toRaw(element))
|
498
|
+
end
|
499
|
+
|
500
|
+
def replaceChild(newElement, oldElement)
|
501
|
+
@raw_object.replaceChild(toRaw(newElement), toRaw(oldElement))
|
502
|
+
end
|
503
|
+
|
504
|
+
def addElement(new_element)
|
505
|
+
parent = self.parentElement
|
506
|
+
next_element = self.nextSibling
|
507
|
+
if next_element
|
508
|
+
parent.insertBefore(new_element, next_element)
|
509
|
+
else
|
510
|
+
parent.appendChild(new_element)
|
511
|
+
end
|
512
|
+
end
|
513
|
+
|
362
514
|
private
|
363
515
|
|
364
516
|
def replace_cr_code(text)
|
@@ -368,74 +520,90 @@ module IEgrip
|
|
368
520
|
end
|
369
521
|
end
|
370
522
|
|
523
|
+
|
371
524
|
# ========================
|
372
|
-
#
|
525
|
+
# Node Collection
|
373
526
|
# ========================
|
374
|
-
class
|
527
|
+
class NodeList < GripWrapper
|
375
528
|
def [](index)
|
376
529
|
return(nil) if index >= @raw_object.length
|
377
|
-
|
530
|
+
raw_node = @raw_object.item(index)
|
531
|
+
if raw_node.nodeType == 1
|
532
|
+
HTMLElement.new(raw_node, @ie_obj)
|
533
|
+
else
|
534
|
+
Node.new(raw_node, @ie_obj)
|
535
|
+
end
|
378
536
|
end
|
379
537
|
|
380
538
|
def size
|
381
539
|
@raw_object.length
|
382
540
|
end
|
383
541
|
|
542
|
+
def each
|
543
|
+
@raw_object.each {|raw_node|
|
544
|
+
if raw_node.nodeType == 1
|
545
|
+
yield HTMLElement.new(raw_node, @ie_obj)
|
546
|
+
else
|
547
|
+
yield Node.new(raw_node, @ie_obj)
|
548
|
+
end
|
549
|
+
}
|
550
|
+
end
|
551
|
+
|
552
|
+
def inspect()
|
553
|
+
"<#{self.class}>"
|
554
|
+
end
|
555
|
+
end
|
556
|
+
|
557
|
+
# ========================
|
558
|
+
# TAG Element Collection
|
559
|
+
# ========================
|
560
|
+
class HTMLElementCollection < NodeList
|
561
|
+
def [](index)
|
562
|
+
return(nil) if index >= @raw_object.length
|
563
|
+
raw_node = @raw_object.item(index)
|
564
|
+
HTMLElement.new(raw_node, @ie_obj)
|
565
|
+
end
|
566
|
+
|
384
567
|
def each
|
385
568
|
@raw_object.each {|tag_element|
|
386
|
-
|
569
|
+
next if (tag_element.nodeType == 3) or (tag_element.nodeType == 8)
|
570
|
+
yield HTMLElement.new(tag_element, @ie_obj)
|
387
571
|
}
|
388
572
|
end
|
389
573
|
|
390
|
-
def
|
391
|
-
|
574
|
+
def getElementsByTitle(target_str)
|
575
|
+
get_elements_by_key(target_str, "VALUE")
|
392
576
|
end
|
393
|
-
def
|
394
|
-
|
577
|
+
def getElementsByValue(target_str)
|
578
|
+
get_elements_by_key(target_str, "VALUE")
|
395
579
|
end
|
396
|
-
def
|
397
|
-
|
580
|
+
def getElementsByText(target_str)
|
581
|
+
get_elements_by_key(target_str, "INNERTEXT")
|
398
582
|
end
|
399
|
-
def
|
400
|
-
|
583
|
+
def getElementsByName(target_str)
|
584
|
+
get_elements_by_key(target_str, "NAME")
|
401
585
|
end
|
402
586
|
|
403
|
-
def
|
404
|
-
taglist =
|
405
|
-
taglist ? taglist[0]: nil
|
406
|
-
end
|
407
|
-
def getTagByValue(target_str)
|
408
|
-
taglist = get_tags_by_key(target_str, "VALUE")
|
587
|
+
def getElementByTitle(target_str)
|
588
|
+
taglist = get_elements_by_key(target_str, "VALUE")
|
409
589
|
taglist ? taglist[0]: nil
|
410
590
|
end
|
411
|
-
def
|
412
|
-
taglist =
|
591
|
+
def getElementByValue(target_str)
|
592
|
+
taglist = get_elements_by_key(target_str, "VALUE")
|
413
593
|
taglist ? taglist[0]: nil
|
414
594
|
end
|
415
|
-
def
|
416
|
-
taglist =
|
595
|
+
def getElementByText(target_str)
|
596
|
+
taglist = get_elements_by_key(target_str, "INNERTEXT")
|
417
597
|
taglist ? taglist[0]: nil
|
418
598
|
end
|
419
|
-
def
|
420
|
-
taglist =
|
599
|
+
def getElementByName(target_str)
|
600
|
+
taglist = get_elements_by_key(target_str, "NAME")
|
421
601
|
taglist ? taglist[0]: nil
|
422
602
|
end
|
423
603
|
|
424
|
-
def inspect()
|
425
|
-
tagname_list = []
|
426
|
-
self.each {|tag_element|
|
427
|
-
tagname_list.push "<#{tag_element.tagName}>"
|
428
|
-
}
|
429
|
-
if tagname_list.size > 3
|
430
|
-
"<#{self.class}: [#{tagname_list[0,3].join(', ')},...]"
|
431
|
-
else
|
432
|
-
"<#{self.class}: [#{tagname_list.join(', ')}]>"
|
433
|
-
end
|
434
|
-
end
|
435
|
-
|
436
604
|
private
|
437
605
|
|
438
|
-
def
|
606
|
+
def get_elements_by_key(target_str, key_type)
|
439
607
|
tag_list = []
|
440
608
|
@raw_object.each {|tag_element|
|
441
609
|
case key_type
|
@@ -451,7 +619,7 @@ module IEgrip
|
|
451
619
|
return nil
|
452
620
|
end
|
453
621
|
if key_string == target_str
|
454
|
-
tag_list.push
|
622
|
+
tag_list.push HTMLElement.new(tag_element, @ie_obj)
|
455
623
|
end
|
456
624
|
}
|
457
625
|
case tag_list.size
|
@@ -461,10 +629,8 @@ module IEgrip
|
|
461
629
|
return tag_list
|
462
630
|
end
|
463
631
|
end
|
464
|
-
|
465
632
|
end
|
466
633
|
|
467
|
-
|
468
634
|
|
469
635
|
# ========================
|
470
636
|
# IE.Document.Frames
|
@@ -498,31 +664,6 @@ module IEgrip
|
|
498
664
|
end
|
499
665
|
end
|
500
666
|
|
501
|
-
# ========================
|
502
|
-
# NodeList
|
503
|
-
# ========================
|
504
|
-
class NodeList < GripWrapper
|
505
|
-
def [](index)
|
506
|
-
return(nil) if index >= @raw_object.length
|
507
|
-
Node.new(@raw_object.item(index), @ie_obj)
|
508
|
-
end
|
509
|
-
|
510
|
-
def size
|
511
|
-
@raw_object.length
|
512
|
-
end
|
513
|
-
|
514
|
-
def each
|
515
|
-
index = 0
|
516
|
-
loop do
|
517
|
-
break if index >= @raw_object.length
|
518
|
-
raw_node = @raw_object.item(index)
|
519
|
-
yield Node.new(raw_node, @ie_obj)
|
520
|
-
index += 1
|
521
|
-
end
|
522
|
-
end
|
523
|
-
end
|
524
|
-
|
525
|
-
|
526
667
|
class Attr < GripWrapper
|
527
668
|
def value=(value_str)
|
528
669
|
@raw_object.value = value_str
|
@@ -532,7 +673,7 @@ module IEgrip
|
|
532
673
|
end
|
533
674
|
|
534
675
|
def ownerElement()
|
535
|
-
|
676
|
+
HTMLElement.new(@raw_object.ownerElement, @ie_obj)
|
536
677
|
end
|
537
678
|
end
|
538
679
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iegrip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yac4423
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|