Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
SeleniumHQ
GitHub Repository: SeleniumHQ/Selenium
Path: blob/trunk/py/selenium/webdriver/common/webdriver.py
4020 views
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
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
19
20
21
class LocalWebDriver(RemoteWebDriver):
22
"""Base class for local WebDrivers."""
23
24
def __init__(self, *args, **kwargs):
25
super().__init__(*args, **kwargs)
26
self._is_remote = False
27
28
def __new__(cls, *args, **kwargs):
29
if cls is LocalWebDriver:
30
raise TypeError(f"Only children of '{cls.__name__}' may be instantiated")
31
return object.__new__(cls)
32
33
def quit(self) -> None:
34
"""Closes the browser and shuts down the driver executable."""
35
try:
36
super().quit()
37
except Exception:
38
# We don't care about the message because something probably has gone wrong
39
pass
40
finally:
41
if hasattr(self, "service") and self.service is not None:
42
self.service.stop()
43
44
def download_file(self, *args, **kwargs):
45
"""Only implemented in RemoteWebDriver."""
46
raise NotImplementedError
47
48
def get_downloadable_files(self, *args, **kwargs):
49
"""Only implemented in RemoteWebDriver."""
50
raise NotImplementedError
51
52
def delete_downloadable_files(self, *args, **kwargs):
53
"""Only implemented in RemoteWebDriver."""
54
raise NotImplementedError
55
56