Skip to content

Commit 70175c8

Browse files
authored
Merge branch 'trunk' into py-bidi-storage
2 parents 3228ebf + aa30fd2 commit 70175c8

File tree

11 files changed

+89
-111
lines changed

11 files changed

+89
-111
lines changed

.skipped-tests

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,10 @@
1919
-//javascript/atoms:test-edge
2020
-//javascript/atoms:test-firefox-beta
2121
-//javascript/chrome-driver/...
22-
-//javascript/selenium-webdriver:test-bidi-network-test.js-chrome
2322
-//javascript/selenium-webdriver:test-builder-test.js-chrome
24-
-//javascript/selenium-webdriver:test-builder-test.js-firefox
2523
-//javascript/selenium-webdriver:test-chrome-devtools-test.js-chrome
26-
-//javascript/selenium-webdriver:test-chrome-options-test.js-chrome
27-
-//javascript/selenium-webdriver:test-chrome-service-test.js-chrome
2824
-//javascript/selenium-webdriver:test-firefox-options-test.js-firefox
2925
-//javascript/selenium-webdriver:test-lib-capabilities-test.js-chrome
30-
-//py:test-chrome-test/selenium/webdriver/chrome/chrome_launcher_tests.py
31-
-//py:test-chrome-test/selenium/webdriver/chrome/chrome_service_tests.py
32-
-//py:test-chrome-test/selenium/webdriver/chrome/proxy_tests.py
33-
-//py:test-edge-test/selenium/webdriver/edge/edge_launcher_tests.py
34-
-//py:test-edge-test/selenium/webdriver/edge/edge_service_tests.py
3526
-//rb/spec/integration/selenium/webdriver/chrome:service-chrome
3627
-//rb/spec/integration/selenium/webdriver/chrome:service-chrome-bidi
3728
-//rb/spec/integration/selenium/webdriver/chrome:service-chrome-remote

common/mirror/selenium

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,33 @@
33
"tag_name": "nightly",
44
"assets": [
55
{
6-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/nightly/selenium-java-4.32.0-SNAPSHOT.zip"
6+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/nightly/selenium-java-4.33.0-SNAPSHOT.zip"
77
},
88
{
9-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/nightly/selenium-server-4.32.0-SNAPSHOT.jar"
9+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/nightly/selenium-server-4.33.0-SNAPSHOT.jar"
1010
},
1111
{
12-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/nightly/selenium-server-4.32.0-SNAPSHOT.zip"
12+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/nightly/selenium-server-4.33.0-SNAPSHOT.zip"
13+
}
14+
]
15+
},
16+
{
17+
"tag_name": "selenium-4.32.0",
18+
"assets": [
19+
{
20+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.32.0/selenium-dotnet-4.32.0.zip"
21+
},
22+
{
23+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.32.0/selenium-dotnet-strongnamed-4.32.0.zip"
24+
},
25+
{
26+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.32.0/selenium-java-4.32.0.zip"
27+
},
28+
{
29+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.32.0/selenium-server-4.32.0.jar"
30+
},
31+
{
32+
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.32.0/selenium-server-4.32.0.zip"
1333
}
1434
]
1535
},
@@ -836,31 +856,5 @@
836856
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.4.0/selenium-server-4.4.0.zip"
837857
}
838858
]
839-
},
840-
{
841-
"tag_name": "selenium-4.3.0",
842-
"assets": [
843-
{
844-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/IEDriverServer_Win32_4.3.0.zip"
845-
},
846-
{
847-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/IEDriverServer_x64_4.3.0.zip"
848-
},
849-
{
850-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/selenium-dotnet-4.3.0.zip"
851-
},
852-
{
853-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/selenium-dotnet-strongnamed-4.3.0.zip"
854-
},
855-
{
856-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/selenium-java-4.3.0.zip"
857-
},
858-
{
859-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/selenium-server-4.3.0.jar"
860-
},
861-
{
862-
"browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.3.0/selenium-server-4.3.0.zip"
863-
}
864-
]
865859
}
866860
]

javascript/selenium-webdriver/test/chrome/devtools_test.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ test.suite(
3434
let driver
3535

3636
beforeEach(async function () {
37-
driver = await env.builder().setChromeOptions(new chrome.Options().addArguments('-headless')).build()
37+
let options = env.builder().getChromeOptions() || new chrome.Options()
38+
options.addArguments('--headless')
39+
driver = await env.builder().setChromeOptions(options).build()
3840
})
3941
afterEach(async () => await driver.quit())
4042

@@ -125,6 +127,7 @@ test.suite(
125127
await driver.register('random', 'random', pageCdpConnection)
126128
await driver.get(fileServer.Pages.basicAuth)
127129
let source = await driver.getPageSource()
130+
console.log(source)
128131
assert.strictEqual(source.includes('Access granted!'), false, source)
129132
})
130133
})

javascript/selenium-webdriver/test/chrome/options_test.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ test.suite(
123123

124124
describe('Chrome options', function () {
125125
it('can start Chrome with custom args', async function () {
126-
const options = new chrome.Options().addArguments('user-agent=foo;bar')
126+
const options = env.builder().getChromeOptions() || new chrome.Options()
127+
options.addArguments('user-agent=foo;bar')
127128

128129
driver = await env.builder().setChromeOptions(options).build()
129130

@@ -152,7 +153,8 @@ test.suite(
152153
})
153154

154155
it('can install an extension from path', async function () {
155-
let options = new chrome.Options().addExtensions(WEBEXTENSION_CRX)
156+
let options = env.builder().getChromeOptions() || new chrome.Options()
157+
options.addExtensions(WEBEXTENSION_CRX)
156158

157159
driver = await env.builder().forBrowser('chrome').setChromeOptions(options).build()
158160

@@ -161,7 +163,8 @@ test.suite(
161163
})
162164

163165
it('can install an extension from Buffer', async function () {
164-
let options = new chrome.Options().addExtensions(fs.readFileSync(WEBEXTENSION_CRX))
166+
let options = env.builder().getChromeOptions() || new chrome.Options()
167+
options.addExtensions(fs.readFileSync(WEBEXTENSION_CRX))
165168

166169
driver = await env.builder().forBrowser('chrome').setChromeOptions(options).build()
167170

javascript/selenium-webdriver/test/firefox/contextSwitching_test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ suite(
3939

4040
describe('context switching', function () {
4141
beforeEach(async function () {
42-
let options = new firefox.Options()
42+
let options = env.builder().getFirefoxOptions() || new firefox.Options()
4343
options.addArguments('-remote-allow-system-access')
4444
driver = await env.builder().setFirefoxOptions(options).build()
4545
})

py/conftest.py

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,10 @@ def get_options(driver_class, config):
213213
browser_args = config.option.args
214214
headless = config.option.headless
215215
bidi = config.option.bidi
216-
options = None
216+
217+
options = getattr(webdriver, f"{driver_class}Options")()
217218

218219
if browser_path or browser_args:
219-
if not options:
220-
options = getattr(webdriver, f"{driver_class}Options")()
221220
if driver_class == "WebKitGTK":
222221
options.overlay_scrollbars_enabled = False
223222
if browser_path is not None:
@@ -227,16 +226,12 @@ def get_options(driver_class, config):
227226
options.add_argument(arg)
228227

229228
if headless:
230-
if not options:
231-
options = getattr(webdriver, f"{driver_class}Options")()
232229
if driver_class == "Chrome" or driver_class == "Edge":
233230
options.add_argument("--headless=new")
234231
if driver_class == "Firefox":
235232
options.add_argument("-headless")
236233

237234
if bidi:
238-
if not options:
239-
options = getattr(webdriver, f"{driver_class}Options")()
240235
options.web_socket_url = True
241236
options.unhandled_prompt_behavior = "ignore"
242237

@@ -336,30 +331,30 @@ def driver_executable(request):
336331
return request.config.option.executable
337332

338333

339-
@pytest.fixture(scope="function")
340-
def clean_service(request):
341-
try:
342-
driver_class = get_driver_class(request.config.option.drivers[0])
343-
except (AttributeError, TypeError):
344-
raise Exception("This test requires a --driver to be specified")
345-
346-
yield get_service(driver_class, request.config.option.executable)
347-
348-
349334
@pytest.fixture(scope="function")
350335
def clean_driver(request):
351336
try:
352337
driver_class = get_driver_class(request.config.option.drivers[0])
353338
except (AttributeError, TypeError):
354339
raise Exception("This test requires a --driver to be specified")
355-
356340
driver_reference = getattr(webdriver, driver_class)
357341
yield driver_reference
358-
359342
if request.node.get_closest_marker("no_driver_after_test"):
360343
driver_reference = None
361344

362345

346+
@pytest.fixture(scope="function")
347+
def clean_service(request):
348+
driver_class = get_driver_class(request.config.option.drivers[0])
349+
yield get_service(driver_class, request.config.option.executable)
350+
351+
352+
@pytest.fixture(scope="function")
353+
def clean_options(request):
354+
driver_class = get_driver_class(request.config.option.drivers[0])
355+
yield get_options(driver_class, request.config)
356+
357+
363358
@pytest.fixture
364359
def firefox_options(request):
365360
try:

py/test/selenium/webdriver/chrome/chrome_launcher_tests.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919

2020

2121
@pytest.mark.no_driver_after_test
22-
def test_launch_and_close_browser(clean_driver, clean_service):
23-
driver = clean_driver(service=clean_service)
22+
def test_launch_and_close_browser(clean_driver, clean_options, clean_service):
23+
driver = clean_driver(options=clean_options, service=clean_service)
2424
driver.quit()
2525

2626

2727
@pytest.mark.no_driver_after_test
28-
def test_we_can_launch_multiple_chrome_instances(clean_driver, clean_service):
29-
driver1 = clean_driver(service=clean_service)
30-
driver2 = clean_driver(service=clean_service)
31-
driver3 = clean_driver(service=clean_service)
28+
def test_we_can_launch_multiple_chrome_instances(clean_driver, clean_options, clean_service):
29+
driver1 = clean_driver(options=clean_options, service=clean_service)
30+
driver2 = clean_driver(options=clean_options, service=clean_service)
31+
driver3 = clean_driver(options=clean_options, service=clean_service)
3232
driver1.quit()
3333
driver2.quit()
3434
driver3.quit()

py/test/selenium/webdriver/chrome/chrome_service_tests.py

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@
2323
import pytest
2424

2525
from selenium.common.exceptions import SessionNotCreatedException
26-
from selenium.webdriver.chrome.options import Options
2726
from selenium.webdriver.chrome.service import Service
2827

2928

3029
@pytest.mark.no_driver_after_test
31-
def test_uses_chromedriver_logging(clean_driver, driver_executable) -> None:
30+
def test_uses_chromedriver_logging(clean_driver, clean_options, driver_executable) -> None:
3231
log_file = "chromedriver.log"
3332
service_args = ["--append-log"]
3433

@@ -47,10 +46,10 @@ def test_uses_chromedriver_logging(clean_driver, driver_executable) -> None:
4746
driver1 = None
4847
driver2 = None
4948
try:
50-
driver1 = clean_driver(service=service1)
49+
driver1 = clean_driver(options=clean_options, service=service1)
5150
with open(log_file) as fp:
5251
lines = len(fp.readlines())
53-
driver2 = clean_driver(service=service2)
52+
driver2 = clean_driver(options=clean_options, service=service2)
5453
with open(log_file) as fp:
5554
assert len(fp.readlines()) >= 2 * lines
5655
finally:
@@ -62,12 +61,12 @@ def test_uses_chromedriver_logging(clean_driver, driver_executable) -> None:
6261

6362

6463
@pytest.mark.no_driver_after_test
65-
def test_log_output_as_filename(clean_driver, driver_executable) -> None:
64+
def test_log_output_as_filename(clean_driver, clean_options, driver_executable) -> None:
6665
log_file = "chromedriver.log"
6766
service = Service(log_output=log_file, executable_path=driver_executable)
6867
try:
6968
assert "--log-path=chromedriver.log" in service.service_args
70-
driver = clean_driver(service=service)
69+
driver = clean_driver(options=clean_options, service=service)
7170
with open(log_file) as fp:
7271
assert "Starting ChromeDriver" in fp.readline()
7372
finally:
@@ -76,12 +75,12 @@ def test_log_output_as_filename(clean_driver, driver_executable) -> None:
7675

7776

7877
@pytest.mark.no_driver_after_test
79-
def test_log_output_as_file(clean_driver, driver_executable) -> None:
78+
def test_log_output_as_file(clean_driver, clean_options, driver_executable) -> None:
8079
log_name = "chromedriver.log"
8180
log_file = open(log_name, "w", encoding="utf-8")
8281
service = Service(log_output=log_file, executable_path=driver_executable)
8382
try:
84-
driver = clean_driver(service=service)
83+
driver = clean_driver(options=clean_options, service=service)
8584
time.sleep(1)
8685
with open(log_name) as fp:
8786
assert "Starting ChromeDriver" in fp.readline()
@@ -92,9 +91,9 @@ def test_log_output_as_file(clean_driver, driver_executable) -> None:
9291

9392

9493
@pytest.mark.no_driver_after_test
95-
def test_log_output_as_stdout(clean_driver, capfd, driver_executable) -> None:
94+
def test_log_output_as_stdout(clean_driver, clean_options, capfd, driver_executable) -> None:
9695
service = Service(log_output=subprocess.STDOUT, executable_path=driver_executable)
97-
driver = clean_driver(service=service)
96+
driver = clean_driver(options=clean_options, service=service)
9897

9998
out, err = capfd.readouterr()
10099
assert "Starting ChromeDriver" in out
@@ -109,12 +108,11 @@ def test_log_output_null_default(driver, capfd) -> None:
109108

110109

111110
@pytest.mark.no_driver_after_test
112-
def test_driver_is_stopped_if_browser_cant_start(clean_driver) -> None:
113-
options = Options()
114-
options.add_argument("--user-data-dir=/no/such/location")
115-
service = Service()
111+
def test_driver_is_stopped_if_browser_cant_start(clean_driver, clean_options, driver_executable) -> None:
112+
clean_options.add_argument("--user-data-dir=/no/such/location")
113+
service = Service(executable_path=driver_executable)
116114
with pytest.raises(SessionNotCreatedException):
117-
clean_driver(options=options, service=service)
115+
clean_driver(options=clean_options, service=service)
118116
assert not service.is_connectable()
119117
assert service.process.poll() is not None
120118

py/test/selenium/webdriver/chrome/proxy_tests.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,13 @@
2020
import pytest
2121
import urllib3
2222

23-
from selenium import webdriver
24-
2523

2624
@pytest.mark.no_driver_after_test
27-
def test_bad_proxy_doesnt_interfere(clean_driver, clean_service):
25+
def test_bad_proxy_doesnt_interfere(clean_driver, clean_options, clean_service):
2826
# Proxy environment variables should be ignored if
2927
# ignore_local_proxy_environment_variables() is called.
30-
31-
options = webdriver.ChromeOptions()
32-
options.ignore_local_proxy_environment_variables()
33-
chrome_kwargs = {"options": options, "service": clean_service}
28+
clean_options.ignore_local_proxy_environment_variables()
29+
chrome_kwargs = {"options": clean_options, "service": clean_service}
3430
with patch.dict("os.environ", {"http_proxy": "bad", "https_proxy": "bad"}):
3531
driver = clean_driver(**chrome_kwargs)
3632
assert hasattr(driver, "command_executor")

py/test/selenium/webdriver/edge/edge_launcher_tests.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919

2020

2121
@pytest.mark.no_driver_after_test
22-
def test_launch_and_close_browser(clean_driver, clean_service):
23-
driver = clean_driver(service=clean_service)
22+
def test_launch_and_close_browser(clean_driver, clean_options, clean_service):
23+
driver = clean_driver(options=clean_options, service=clean_service)
2424
driver.quit()
2525

2626

2727
@pytest.mark.no_driver_after_test
28-
def test_we_can_launch_multiple_edge_instances(clean_driver, clean_service):
29-
driver1 = clean_driver(service=clean_service)
30-
driver2 = clean_driver(service=clean_service)
31-
driver3 = clean_driver(service=clean_service)
28+
def test_we_can_launch_multiple_edge_instances(clean_driver, clean_options, clean_service):
29+
driver1 = clean_driver(options=clean_options, service=clean_service)
30+
driver2 = clean_driver(options=clean_options, service=clean_service)
31+
driver3 = clean_driver(options=clean_options, service=clean_service)
3232
driver1.quit()
3333
driver2.quit()
3434
driver3.quit()

0 commit comments

Comments
 (0)