Skip to content

Commit 0686d8f

Browse files
authored
[py] Raise TypeError when creating webdriver.Remote() without options (SeleniumHQ#15619)
1 parent 3e26d11 commit 0686d8f

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

py/selenium/webdriver/remote/webdriver.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,11 @@ def __init__(
224224
- Custom client configuration to use. Defaults to None.
225225
"""
226226

227-
if isinstance(options, list):
227+
if options is None:
228+
raise TypeError(
229+
"missing 1 required keyword-only argument: 'options' (instance of driver `options.Options` class)"
230+
)
231+
elif isinstance(options, list):
228232
capabilities = create_matches(options)
229233
_ignore_local_proxy = False
230234
else:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Licensed to the Software Freedom Conservancy (SFC) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The SFC licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
import re
19+
20+
import pytest
21+
22+
from selenium import webdriver
23+
24+
25+
def test_remote_webdriver_requires_options_parameter():
26+
msg = "missing 1 required keyword-only argument: 'options' (instance of driver `options.Options` class)"
27+
with pytest.raises(TypeError, match=re.escape(msg)):
28+
webdriver.Remote()
29+
with pytest.raises(TypeError, match=re.escape(msg)):
30+
webdriver.Remote(None)
31+
with pytest.raises(TypeError, match=re.escape(msg)):
32+
webdriver.Remote(options=None)

0 commit comments

Comments
 (0)