async-webdriver 0.7.0 → 0.8.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c7fde43f94aa9182aeaded09da20644c53bcafe3f21bc722fa4bbd3d7d8a405
4
- data.tar.gz: f88afb6a905c747f73b59e6bcc64861b06ebf1744ed7804553965befe0a1f2a0
3
+ metadata.gz: 5c3dae5c334d2b97f044519b5c4235c104148fadcac0e95f25764551197a889c
4
+ data.tar.gz: b843c0e5eca27f7382d9d972fdce259051607c844600eea887a82e4a81d5e167
5
5
  SHA512:
6
- metadata.gz: c11a7bd6686ae143b6a0357925741f5d6131f6d0b54aaa7b7ce3535be7c94debc357dec9407c07a939334b2a6145ad86a5585fae8ba95a254f02b224b2eeeb1b
7
- data.tar.gz: 8873992a29a8351f3a4d5ac4681369aae2ab7d9055cfc0c6f3251fd0c77a6c99229888c0298829d27d1c81f6504d78feff8cbddc575b59d04a2223424022d8cc
6
+ metadata.gz: 39488968a35e04975b8f1bfe8d2287dac5811f4a6e32db4a52dc14c835d43b0b502285d0e88f7925f1b0776610ec3011901a575dee56af5755101fface01d44c
7
+ data.tar.gz: '082e3d764d278351a50cf7bc969d586a94ee26a0066314f9de3577189dd752cb54eb0eaecc8fe1d9b4aadef1627c0df6b8eb7829702aa9cbc7e8a27b2281944b'
checksums.yaml.gz.sig CHANGED
Binary file
@@ -71,6 +71,11 @@ module Async
71
71
  def acquire
72
72
  if @sessions.empty?
73
73
  session = @client.post("session", {capabilities: @capabilities})
74
+
75
+ if session.nil?
76
+ raise Async::WebDriver::Error, "Failed to create session with capabilities: #{@capabilities.inspect}"
77
+ end
78
+
74
79
  session[:cache] = self
75
80
  session[:endpoint] = @driver.endpoint
76
81
 
@@ -211,9 +211,9 @@ module Async
211
211
  # element.tagName
212
212
  # ```
213
213
  #
214
- # @returns [String] The tag name of the element.
214
+ # @returns [String] The tag name of the element, always in lowercase for consistency across browsers.
215
215
  def tag_name
216
- get("name")
216
+ get("name").downcase
217
217
  end
218
218
 
219
219
  # A struct representing the size of an element.
@@ -46,10 +46,10 @@ module Async
46
46
  # @returns [Object] The unwrapped value.
47
47
  def unwrap_object(value)
48
48
  if value.is_a?(Hash) and value.key?(ELEMENT_KEY)
49
- Element.new(self.session, value[ELEMENT_KEY])
50
- else
51
- value
49
+ value = Element.new(self.session, value[ELEMENT_KEY])
52
50
  end
51
+
52
+ return value
53
53
  end
54
54
 
55
55
  # Used by `JSON.load` to unwrap objects.
@@ -60,6 +60,8 @@ module Async
60
60
  when Array
61
61
  value.map!(&method(:unwrap_object))
62
62
  end
63
+
64
+ return value
63
65
  end
64
66
 
65
67
  # Extract the value from the reply.
@@ -32,7 +32,12 @@ module Async
32
32
  element.clear
33
33
  end
34
34
 
35
- element.send_keys(value)
35
+ if element.tag_name == "select"
36
+ option = element.find_element_by_xpath(".//option[text()=#{XPath::escape(value)}]")
37
+ option.click unless option.selected?
38
+ else
39
+ element.send_keys(value)
40
+ end
36
41
  end
37
42
 
38
43
  # Click a button with the given label.
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module WebDriver
8
- VERSION = "0.7.0"
8
+ VERSION = "0.8.0"
9
9
  end
10
10
  end
data/readme.md CHANGED
@@ -20,6 +20,15 @@ Please see the [project documentation](https://socketry.github.io/async-webdrive
20
20
 
21
21
  - [Sus Integration](https://socketry.github.io/async-webdriver/guides/sus-integration/index) - This guide will show you how to integrate `async-webdriver` with the sus test framework.
22
22
 
23
+ ## Releases
24
+
25
+ Please see the [project releases](https://socketry.github.io/async-webdriver/releases/index) for all releases.
26
+
27
+ ### v0.8.0
28
+
29
+ - Fix `fill_in` `<select>` on Safari.
30
+ - `Element#tag_name` now normalizes the tag name to lowercase (Safari returns uppercase while other browsers return lowercase).
31
+
23
32
  ## See Also
24
33
 
25
34
  - [sus-fixtures-async-webdriver](https://github.com/socketry/sus-fixtures-async-webdriver) - Standard fixtures for testing web applications with `async-webdriver`.
data/releases.md ADDED
@@ -0,0 +1,6 @@
1
+ # Releases
2
+
3
+ ## v0.8.0
4
+
5
+ - Fix `fill_in` `<select>` on Safari.
6
+ - `Element#tag_name` now normalizes the tag name to lowercase (Safari returns uppercase while other browsers return lowercase).
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -36,7 +36,7 @@ cert_chain:
36
36
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
37
37
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
38
38
  -----END CERTIFICATE-----
39
- date: 2025-02-28 00:00:00.000000000 Z
39
+ date: 1980-01-02 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: async-actor
@@ -142,6 +142,7 @@ files:
142
142
  - lib/async/webdriver/xpath.rb
143
143
  - license.md
144
144
  - readme.md
145
+ - releases.md
145
146
  homepage: https://github.com/socketry/async-webdriver
146
147
  licenses:
147
148
  - MIT
@@ -156,14 +157,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
157
  requirements:
157
158
  - - ">="
158
159
  - !ruby/object:Gem::Version
159
- version: '3.1'
160
+ version: '3.2'
160
161
  required_rubygems_version: !ruby/object:Gem::Requirement
161
162
  requirements:
162
163
  - - ">="
163
164
  - !ruby/object:Gem::Version
164
165
  version: '0'
165
166
  requirements: []
166
- rubygems_version: 3.6.2
167
+ rubygems_version: 3.6.7
167
168
  specification_version: 4
168
169
  summary: A native library implementing the W3C WebDriver client specification.
169
170
  test_files: []
metadata.gz.sig CHANGED
Binary file