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 CHANGED
@@ -1,3 +1,10 @@
1
+ 3.0.0.beta2 (2016-08-02)
2
+ ===================
3
+
4
+ Firefox:
5
+ * Fixed bug with form submission
6
+ * Improved w3c element handling
7
+
1
8
  3.0.0.beta1 (2016-07-28)
2
9
  ===================
3
10
 
@@ -31,8 +31,9 @@ module Selenium
31
31
  when Array
32
32
  arg.map { |e| unwrap_script_result(e) }
33
33
  when Hash
34
- id = element_id_from(arg)
35
- return Element.new(self, id) if id
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
@@ -292,10 +292,7 @@ module Selenium
292
292
  #
293
293
 
294
294
  def as_json(*)
295
- {
296
- :ELEMENT => @id,
297
- 'element-6066-11e4-a52e-4f735466cecf' => @id
298
- }
295
+ @id.is_a?(Hash) ? @id : {:ELEMENT => @id}
299
296
  end
300
297
 
301
298
  private
@@ -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}", "--webdriver-port=#{@port}", *@extra_args]
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() }', element)
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
@@ -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.beta1'
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.beta1
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-07-28 00:00:00 -05:00
14
+ date: 2016-08-02 00:00:00 -05:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency