Skip to content

Commit de9675b

Browse files
authored
[py]: Additional types for element fetching methods (#10662)
* add additional types for some `find_element?s(...)` methods * [py]: fix unused imports in `event_firing_webdriver`
1 parent f9018c6 commit de9675b

File tree

4 files changed

+10
-12
lines changed

4 files changed

+10
-12
lines changed

py/selenium/webdriver/remote/shadowroot.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,9 @@ def __init__(self, session, id_):
3232
def __eq__(self, other_shadowroot):
3333
return self._id == other_shadowroot._id
3434

35-
def __hash__(self):
35+
def __hash__(self) -> int:
3636
return int(md5_hash(self._id.encode("utf-8")).hexdigest(), 16)
3737

38-
def __ne__(self, other_shadowroot):
39-
return not self.__eq__(other_shadowroot)
40-
4138
def __repr__(self):
4239
return '<{0.__module__}.{0.__name__} (session="{1}", element="{2}")>'.format(
4340
type(self), self.session.session_id, self._id

py/selenium/webdriver/remote/webelement.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from __future__ import annotations
1818

1919
import os
20+
import typing
2021
from base64 import b64decode, encodebytes
2122
from hashlib import md5 as md5_hash
2223
import pkgutil
@@ -396,7 +397,7 @@ def _execute(self, command, params=None):
396397
params['id'] = self._id
397398
return self._parent.execute(command, params)
398399

399-
def find_element(self, by=By.ID, value=None):
400+
def find_element(self, by=By.ID, value=None) -> WebElement:
400401
"""
401402
Find an element given a By strategy and locator.
402403
@@ -420,7 +421,7 @@ def find_element(self, by=By.ID, value=None):
420421
return self._execute(Command.FIND_CHILD_ELEMENT,
421422
{"using": by, "value": value})['value']
422423

423-
def find_elements(self, by=By.ID, value=None):
424+
def find_elements(self, by=By.ID, value=None) -> typing.List[WebElement]:
424425
"""
425426
Find elements given a By strategy and locator.
426427

py/selenium/webdriver/support/event_firing_webdriver.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# KIND, either express or implied. See the License for the
1515
# specific language governing permissions and limitations
1616
# under the License.
17-
17+
import typing
1818

1919
from selenium.common.exceptions import WebDriverException
2020
from selenium.webdriver.common.by import By
@@ -102,10 +102,10 @@ def close(self):
102102
def quit(self):
103103
self._dispatch("quit", (self._driver,), "quit", ())
104104

105-
def find_element(self, by=By.ID, value=None):
105+
def find_element(self, by=By.ID, value=None) -> WebElement:
106106
return self._dispatch("find", (by, value, self._driver), "find_element", (by, value))
107107

108-
def find_elements(self, by=By.ID, value=None):
108+
def find_elements(self, by=By.ID, value=None) -> typing.List[WebElement]:
109109
return self._dispatch("find", (by, value, self._driver), "find_elements", (by, value))
110110

111111
def _dispatch(self, l_call, l_args, d_call, d_args):
@@ -188,10 +188,10 @@ def clear(self):
188188
def send_keys(self, *value):
189189
self._dispatch("change_value_of", (self._webelement, self._driver), "send_keys", value)
190190

191-
def find_element(self, by=By.ID, value=None):
191+
def find_element(self, by=By.ID, value=None) -> WebElement:
192192
return self._dispatch("find", (by, value, self._driver), "find_element", (by, value))
193193

194-
def find_elements(self, by=By.ID, value=None):
194+
def find_elements(self, by=By.ID, value=None) -> typing.List[WebElement]:
195195
return self._dispatch("find", (by, value, self._driver), "find_elements", (by, value))
196196

197197
def _dispatch(self, l_call, l_args, d_call, d_args):

py/setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[flake8]
2-
exclude = .tox,docs/source/conf.py
2+
exclude = .tox,docs/source/conf.py,*venv
33
ignore = E501
44

55
[tool:pytest]

0 commit comments

Comments
 (0)