Skip to content

Commit 3ba1811

Browse files
authored
Merge branch 'trunk' into trunk
2 parents 8ef09d8 + 3a3c46b commit 3ba1811

File tree

9 files changed

+47
-16
lines changed

9 files changed

+47
-16
lines changed

java/src/org/openqa/selenium/bidi/script/NodeProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
public class NodeProperties {
2626
private enum Mode {
2727
OPEN("open"),
28-
CLOSE("close");
28+
CLOSED("closed");
2929

3030
private final String value;
3131

java/test/org/openqa/selenium/bidi/browsingcontext/LocateNodesTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ void canLocateNodesWithMaxNodeCount() {
162162
}
163163

164164
@Test
165-
@NotYetImplemented(CHROME)
166-
@NotYetImplemented(EDGE)
167165
void canLocateNodesGivenStartNodes() {
168166
String handle = driver.getWindowHandle();
169167
BrowsingContext browsingContext = new BrowsingContext(driver, handle);

py/selenium/webdriver/chromium/remote_connection.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ def __init__(
3030
ignore_proxy: Optional[bool] = False,
3131
client_config: Optional[ClientConfig] = None,
3232
) -> None:
33+
client_config = client_config or ClientConfig(
34+
remote_server_addr=remote_server_addr, keep_alive=keep_alive, timeout=120
35+
)
3336
super().__init__(
34-
remote_server_addr=remote_server_addr,
35-
keep_alive=keep_alive,
3637
ignore_proxy=ignore_proxy,
3738
client_config=client_config,
3839
)

py/selenium/webdriver/firefox/remote_connection.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ def __init__(
3232
ignore_proxy: Optional[bool] = False,
3333
client_config: Optional[ClientConfig] = None,
3434
) -> None:
35+
client_config = client_config or ClientConfig(
36+
remote_server_addr=remote_server_addr, keep_alive=keep_alive, timeout=120
37+
)
3538
super().__init__(
36-
remote_server_addr=remote_server_addr,
37-
keep_alive=keep_alive,
3839
ignore_proxy=ignore_proxy,
3940
client_config=client_config,
4041
)

py/selenium/webdriver/ie/webdriver.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# under the License.
1717

1818
from selenium.webdriver.common.driver_finder import DriverFinder
19+
from selenium.webdriver.remote.client_config import ClientConfig
1920
from selenium.webdriver.remote.remote_connection import RemoteConnection
2021
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
2122

@@ -49,10 +50,10 @@ def __init__(
4950
self.service.path = self.service.env_path() or DriverFinder(self.service, options).get_driver_path()
5051
self.service.start()
5152

53+
client_config = ClientConfig(remote_server_addr=self.service.service_url, keep_alive=keep_alive, timeout=120)
5254
executor = RemoteConnection(
53-
remote_server_addr=self.service.service_url,
54-
keep_alive=keep_alive,
5555
ignore_proxy=options._ignore_local_proxy,
56+
client_config=client_config,
5657
)
5758

5859
try:

py/selenium/webdriver/remote/remote_connection.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,18 @@ class RemoteConnection:
136136
"""
137137

138138
browser_name = None
139+
# Keep backward compatibility for AppiumConnection - https://github.com/SeleniumHQ/selenium/issues/14694
140+
import os
141+
import socket
142+
143+
import certifi
144+
145+
_timeout = (
146+
float(os.getenv("GLOBAL_DEFAULT_TIMEOUT", str(socket.getdefaulttimeout())))
147+
if os.getenv("GLOBAL_DEFAULT_TIMEOUT") is not None
148+
else socket.getdefaulttimeout()
149+
)
150+
_ca_certs = os.getenv("REQUESTS_CA_BUNDLE") if "REQUESTS_CA_BUNDLE" in os.environ else certifi.where()
139151
_client_config: ClientConfig = None
140152

141153
system = platform.system().lower()
@@ -296,6 +308,9 @@ def __init__(
296308
init_args_for_pool_manager=init_args_for_pool_manager,
297309
)
298310

311+
# Keep backward compatibility for AppiumConnection - https://github.com/SeleniumHQ/selenium/issues/14694
312+
RemoteConnection._timeout = self._client_config.timeout
313+
RemoteConnection._ca_certs = self._client_config.ca_certs
299314
RemoteConnection._client_config = self._client_config
300315

301316
if remote_server_addr:
@@ -375,7 +390,7 @@ def execute(self, command, params):
375390
LOGGER.debug("%s %s %s", command_info[0], url, str(trimmed))
376391
return self._request(command_info[0], url, body=data)
377392

378-
def _request(self, method, url, body=None, timeout=120):
393+
def _request(self, method, url, body=None):
379394
"""Send an HTTP request to the remote server.
380395
381396
:Args:
@@ -397,12 +412,12 @@ def _request(self, method, url, body=None, timeout=120):
397412
body = None
398413

399414
if self._client_config.keep_alive:
400-
response = self._conn.request(method, url, body=body, headers=headers, timeout=timeout)
415+
response = self._conn.request(method, url, body=body, headers=headers, timeout=self._client_config.timeout)
401416
statuscode = response.status
402417
else:
403418
conn = self._get_connection_manager()
404419
with conn as http:
405-
response = http.request(method, url, body=body, headers=headers, timeout=timeout)
420+
response = http.request(method, url, body=body, headers=headers, timeout=self._client_config.timeout)
406421
statuscode = response.status
407422
data = response.data.decode("UTF-8")
408423
LOGGER.debug("Remote response: status=%s | data=%s | headers=%s", response.status, data, response.headers)

py/selenium/webdriver/safari/remote_connection.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ def __init__(
3232
ignore_proxy: Optional[bool] = False,
3333
client_config: Optional[ClientConfig] = None,
3434
) -> None:
35+
client_config = client_config or ClientConfig(
36+
remote_server_addr=remote_server_addr, keep_alive=keep_alive, timeout=120
37+
)
3538
super().__init__(
36-
remote_server_addr=remote_server_addr,
37-
keep_alive=keep_alive,
3839
ignore_proxy=ignore_proxy,
3940
client_config=client_config,
4041
)

py/selenium/webdriver/safari/webdriver.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# under the License.
1717

1818
from selenium.common.exceptions import WebDriverException
19+
from selenium.webdriver.remote.client_config import ClientConfig
1920
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
2021

2122
from ..common.driver_finder import DriverFinder
@@ -50,10 +51,10 @@ def __init__(
5051
if not self.service.reuse_service:
5152
self.service.start()
5253

54+
client_config = ClientConfig(remote_server_addr=self.service.service_url, keep_alive=keep_alive, timeout=120)
5355
executor = SafariRemoteConnection(
54-
remote_server_addr=self.service.service_url,
55-
keep_alive=keep_alive,
5656
ignore_proxy=options._ignore_local_proxy,
57+
client_config=client_config,
5758
)
5859

5960
try:

py/test/unit/selenium/webdriver/remote/remote_connection_tests.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,19 @@ def test_register_extra_headers(mock_request, remote_connection):
307307
assert headers["Foo"] == "bar"
308308

309309

310+
def test_backwards_compatibility_with_appium_connection():
311+
# Keep backward compatibility for AppiumConnection - https://github.com/SeleniumHQ/selenium/issues/14694
312+
client_config = ClientConfig(remote_server_addr="http://remote", ca_certs="/path/to/cacert.pem", timeout=300)
313+
remote_connection = RemoteConnection(client_config=client_config)
314+
assert remote_connection._ca_certs == "/path/to/cacert.pem"
315+
assert remote_connection._timeout == 300
316+
assert remote_connection._client_config == client_config
317+
remote_connection.set_timeout(120)
318+
assert remote_connection.get_timeout() == 120
319+
remote_connection.set_certificate_bundle_path("/path/to/cacert2.pem")
320+
assert remote_connection.get_certificate_bundle_path() == "/path/to/cacert2.pem"
321+
322+
310323
def test_get_connection_manager_with_timeout_from_client_config():
311324
remote_connection = RemoteConnection(remote_server_addr="http://remote", keep_alive=False)
312325
remote_connection.set_timeout(10)

0 commit comments

Comments
 (0)