Skip to content

Commit 3e26d11

Browse files
authored
[py] Remove logging API for non-Chromium browsers (SeleniumHQ#15641)
1 parent 0de6351 commit 3e26d11

File tree

3 files changed

+40
-36
lines changed

3 files changed

+40
-36
lines changed

py/selenium/webdriver/chromium/webdriver.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from selenium.webdriver.common.driver_finder import DriverFinder
2020
from selenium.webdriver.common.options import ArgOptions
2121
from selenium.webdriver.common.service import Service
22+
from selenium.webdriver.remote.command import Command
2223
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
2324

2425

@@ -149,6 +150,33 @@ def get_issue_message(self):
149150
session."""
150151
return self.execute("getIssueMessage")["value"]
151152

153+
@property
154+
def log_types(self):
155+
"""Gets a list of the available log types.
156+
157+
Example:
158+
--------
159+
>>> driver.log_types
160+
"""
161+
return self.execute(Command.GET_AVAILABLE_LOG_TYPES)["value"]
162+
163+
def get_log(self, log_type):
164+
"""Gets the log for a given log type.
165+
166+
Parameters:
167+
-----------
168+
log_type : str
169+
- Type of log that which will be returned
170+
171+
Example:
172+
--------
173+
>>> driver.get_log('browser')
174+
>>> driver.get_log('driver')
175+
>>> driver.get_log('client')
176+
>>> driver.get_log('server')
177+
"""
178+
return self.execute(Command.GET_LOG, {"type": log_type})["value"]
179+
152180
def set_sink_to_use(self, sink_name: str) -> dict:
153181
"""Sets a specific sink, using its name, as a Cast session receiver
154182
target.

py/selenium/webdriver/remote/webdriver.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,34 +1174,6 @@ def orientation(self, value) -> None:
11741174
else:
11751175
raise WebDriverException("You can only set the orientation to 'LANDSCAPE' and 'PORTRAIT'")
11761176

1177-
@property
1178-
def log_types(self):
1179-
"""Gets a list of the available log types. This only works with w3c
1180-
compliant browsers.
1181-
1182-
Example:
1183-
--------
1184-
>>> driver.log_types
1185-
"""
1186-
return self.execute(Command.GET_AVAILABLE_LOG_TYPES)["value"]
1187-
1188-
def get_log(self, log_type):
1189-
"""Gets the log for a given log type.
1190-
1191-
Parameters:
1192-
-----------
1193-
log_type : str
1194-
- Type of log that which will be returned
1195-
1196-
Example:
1197-
--------
1198-
>>> driver.get_log('browser')
1199-
>>> driver.get_log('driver')
1200-
>>> driver.get_log('client')
1201-
>>> driver.get_log('server')
1202-
"""
1203-
return self.execute(Command.GET_LOG, {"type": log_type})["value"]
1204-
12051177
def start_devtools(self):
12061178
global devtools
12071179
if self._websocket_connection:

py/test/selenium/webdriver/common/api_example_tests.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,9 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
1918
import pytest
2019

2120
from selenium.common.exceptions import NoSuchElementException
22-
from selenium.common.exceptions import WebDriverException
2321
from selenium.webdriver.common.by import By
2422
from selenium.webdriver.support import expected_conditions as EC
2523
from selenium.webdriver.support.wait import WebDriverWait
@@ -274,17 +272,23 @@ def test_change_window_size(driver, pages):
274272
assert size["height"] == newSize[1]
275273

276274

277-
@pytest.mark.xfail_firefox(raises=WebDriverException)
278-
@pytest.mark.xfail_remote
279-
@pytest.mark.xfail_safari
275+
@pytest.mark.xfail_ie(raises=AttributeError, reason="Logging API is no longer available")
276+
@pytest.mark.xfail_firefox(raises=AttributeError, reason="Logging API is no longer available")
277+
@pytest.mark.xfail_remote(raises=AttributeError, reason="Logging API is no longer available")
278+
@pytest.mark.xfail_safari(raises=AttributeError, reason="Logging API is no longer available")
279+
@pytest.mark.xfail_webkitgtk(raises=AttributeError, reason="Logging API is no longer available")
280+
@pytest.mark.xfail_wpewebkit(raises=AttributeError, reason="Logging API is no longer available")
280281
def test_get_log_types(driver, pages):
281282
pages.load("blank.html")
282283
assert isinstance(driver.log_types, list)
283284

284285

285-
@pytest.mark.xfail_firefox(raises=WebDriverException)
286-
@pytest.mark.xfail_remote
287-
@pytest.mark.xfail_safari
286+
@pytest.mark.xfail_ie(raises=AttributeError, reason="Logging API is no longer available")
287+
@pytest.mark.xfail_firefox(raises=AttributeError, reason="Logging API is no longer available")
288+
@pytest.mark.xfail_remote(raises=AttributeError, reason="Logging API is no longer available")
289+
@pytest.mark.xfail_safari(raises=AttributeError, reason="Logging API is no longer available")
290+
@pytest.mark.xfail_webkitgtk(raises=AttributeError, reason="Logging API is no longer available")
291+
@pytest.mark.xfail_wpewebkit()(raises=AttributeError, reason="Logging API is no longer available")
288292
def test_get_log(driver, pages):
289293
pages.load("blank.html")
290294
for log_type in driver.log_types:

0 commit comments

Comments
 (0)