selenium-webdriver 3.0.0.beta1 → 3.0.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +7 -0
- data/lib/selenium/webdriver/common/bridge_helper.rb +3 -2
- data/lib/selenium/webdriver/common/element.rb +1 -4
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/service.rb +1 -1
- data/lib/selenium/webdriver/remote/capabilities.rb +1 -1
- data/lib/selenium/webdriver/remote/w3c_bridge.rb +22 -19
- data/selenium-webdriver.gemspec +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -31,8 +31,9 @@ module Selenium
|
|
31
31
|
when Array
|
32
32
|
arg.map { |e| unwrap_script_result(e) }
|
33
33
|
when Hash
|
34
|
-
|
35
|
-
|
34
|
+
element_id = element_id_from(arg)
|
35
|
+
element_id = arg if self.is_a?(Remote::W3CBridge) && element_id
|
36
|
+
return Element.new(self, element_id) if element_id
|
36
37
|
arg.each { |k, v| arg[k] = unwrap_script_result(v) }
|
37
38
|
else
|
38
39
|
arg
|
Binary file
|
@@ -30,7 +30,7 @@ module Selenium
|
|
30
30
|
private
|
31
31
|
|
32
32
|
def start_process
|
33
|
-
server_command = [@executable_path, "--binary=#{Firefox::Binary.path}", "--
|
33
|
+
server_command = [@executable_path, "--binary=#{Firefox::Binary.path}", "--port=#{@port}", *@extra_args]
|
34
34
|
@process = ChildProcess.build(*server_command)
|
35
35
|
|
36
36
|
if $DEBUG
|
@@ -143,7 +143,7 @@ module Selenium
|
|
143
143
|
caps.takes_screenshot = data.delete('takesScreenshot')
|
144
144
|
caps.native_events = data.delete('nativeEvents')
|
145
145
|
caps.rotatable = data.delete('rotatable')
|
146
|
-
caps.proxy = Proxy.json_create(data['proxy']) if data.key?('proxy')
|
146
|
+
caps.proxy = Proxy.json_create(data['proxy']) if data.key?('proxy') && !data['proxy'].empty?
|
147
147
|
|
148
148
|
# any remaining pairs will be added as is, with no conversion
|
149
149
|
caps.merge!(data)
|
@@ -124,6 +124,9 @@ module Selenium
|
|
124
124
|
end
|
125
125
|
|
126
126
|
def create_session(desired_capabilities)
|
127
|
+
# TODO - Remove this when Mozilla fixes bug
|
128
|
+
desired_capabilities[:browser_name] = 'firefox' if desired_capabilities[:browser_name] == 'Firefox'
|
129
|
+
|
127
130
|
resp = raw_execute :newSession, {}, {desiredCapabilities: desired_capabilities}
|
128
131
|
@session_id = resp['sessionId']
|
129
132
|
return W3CCapabilities.json_create resp['value'] if @session_id
|
@@ -396,7 +399,7 @@ module Selenium
|
|
396
399
|
#
|
397
400
|
|
398
401
|
def click_element(element)
|
399
|
-
execute :elementClick, id: element
|
402
|
+
execute :elementClick, id: element.values.first
|
400
403
|
end
|
401
404
|
|
402
405
|
def click
|
@@ -436,21 +439,22 @@ module Selenium
|
|
436
439
|
|
437
440
|
# TODO: - Implement file verification
|
438
441
|
def send_keys_to_element(element, keys)
|
439
|
-
execute :elementSendKeys, {id: element}, {value: keys.join('').split(//)}
|
442
|
+
execute :elementSendKeys, {id: element.values.first}, {value: keys.join('').split(//)}
|
440
443
|
end
|
441
444
|
|
442
445
|
def clear_element(element)
|
443
|
-
execute :elementClear, id: element
|
446
|
+
execute :elementClear, id: element.values.first
|
444
447
|
end
|
445
448
|
|
446
449
|
def submit_element(element)
|
450
|
+
form = find_element_by('xpath', "./ancestor-or-self::form", element)
|
447
451
|
execute_script("var e = arguments[0].ownerDocument.createEvent('Event');" \
|
448
452
|
"e.initEvent('submit', true, true);" \
|
449
|
-
'if (arguments[0].dispatchEvent(e)) { arguments[0].submit() }',
|
453
|
+
'if (arguments[0].dispatchEvent(e)) { arguments[0].submit() }', form.as_json)
|
450
454
|
end
|
451
455
|
|
452
456
|
def drag_element(element, right_by, down_by)
|
453
|
-
execute :dragElement, {id: element}, {x: right_by, y: down_by}
|
457
|
+
execute :dragElement, {id: element.values.first}, {x: right_by, y: down_by}
|
454
458
|
end
|
455
459
|
|
456
460
|
def touch_single_tap(element)
|
@@ -511,23 +515,23 @@ module Selenium
|
|
511
515
|
#
|
512
516
|
|
513
517
|
def element_tag_name(element)
|
514
|
-
execute :getElementTagName, id: element
|
518
|
+
execute :getElementTagName, id: element.values.first
|
515
519
|
end
|
516
520
|
|
517
521
|
def element_attribute(element, name)
|
518
|
-
execute :getElementAttribute, id: element, name: name
|
522
|
+
execute :getElementAttribute, id: element.values.first, name: name
|
519
523
|
end
|
520
524
|
|
521
525
|
def element_value(element)
|
522
|
-
execute :getElementProperty, id: element, name: 'value'
|
526
|
+
execute :getElementProperty, id: element.values.first, name: 'value'
|
523
527
|
end
|
524
528
|
|
525
529
|
def element_text(element)
|
526
|
-
execute :getElementText, id: element
|
530
|
+
execute :getElementText, id: element.values.first
|
527
531
|
end
|
528
532
|
|
529
533
|
def element_location(element)
|
530
|
-
data = execute :getElementRect, id: element
|
534
|
+
data = execute :getElementRect, id: element.values.first
|
531
535
|
|
532
536
|
Point.new data['x'], data['y']
|
533
537
|
end
|
@@ -538,27 +542,27 @@ module Selenium
|
|
538
542
|
end
|
539
543
|
|
540
544
|
def element_size(element)
|
541
|
-
data = execute :getElementRect, id: element
|
545
|
+
data = execute :getElementRect, id: element.values.first
|
542
546
|
|
543
547
|
Dimension.new data['width'], data['height']
|
544
548
|
end
|
545
549
|
|
546
550
|
def element_enabled?(element)
|
547
|
-
execute :isElementEnabled, id: element
|
551
|
+
execute :isElementEnabled, id: element.values.first
|
548
552
|
end
|
549
553
|
|
550
554
|
def element_selected?(element)
|
551
|
-
execute :isElementSelected, id: element
|
555
|
+
execute :isElementSelected, id: element.values.first
|
552
556
|
end
|
553
557
|
|
554
558
|
def element_displayed?(element)
|
555
559
|
jwp = Selenium::WebDriver::Remote::Bridge::COMMANDS[:isElementDisplayed]
|
556
560
|
self.class.command(:isElementDisplayed, jwp.first, jwp.last)
|
557
|
-
execute :isElementDisplayed, id: element
|
561
|
+
execute :isElementDisplayed, id: element.values.first
|
558
562
|
end
|
559
563
|
|
560
564
|
def element_value_of_css_property(element, prop)
|
561
|
-
execute :getElementCssValue, id: element, property_name: prop
|
565
|
+
execute :getElementCssValue, id: element.values.first, property_name: prop
|
562
566
|
end
|
563
567
|
|
564
568
|
#
|
@@ -575,19 +579,18 @@ module Selenium
|
|
575
579
|
how, what = convert_locators(how, what)
|
576
580
|
|
577
581
|
id = if parent
|
578
|
-
execute :findChildElement, {id: parent}, {using: how, value: what}
|
582
|
+
execute :findChildElement, {id: parent.values.first}, {using: how, value: what}
|
579
583
|
else
|
580
584
|
execute :findElement, {}, {using: how, value: what}
|
581
585
|
end
|
582
|
-
|
583
|
-
Element.new self, element_id_from(id)
|
586
|
+
Element.new self, id
|
584
587
|
end
|
585
588
|
|
586
589
|
def find_elements_by(how, what, parent = nil)
|
587
590
|
how, what = convert_locators(how, what)
|
588
591
|
|
589
592
|
ids = if parent
|
590
|
-
execute :findChildElements, {id: parent}, {using: how, value: what}
|
593
|
+
execute :findChildElements, {id: parent.values.first}, {using: how, value: what}
|
591
594
|
else
|
592
595
|
execute :findElements, {}, {using: how, value: what}
|
593
596
|
end
|
data/selenium-webdriver.gemspec
CHANGED
@@ -5,7 +5,7 @@ raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'selenium-webdriver'
|
8
|
-
s.version = '3.0.0.
|
8
|
+
s.version = '3.0.0.beta2'
|
9
9
|
|
10
10
|
s.authors = ['Alex Rodionov', 'Titus Fortner']
|
11
11
|
s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 6
|
5
|
-
version: 3.0.0.
|
5
|
+
version: 3.0.0.beta2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Alex Rodionov
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-08-02 00:00:00 -05:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|