|
16 | 16 | # under the License.
|
17 | 17 |
|
18 | 18 |
|
| 19 | +from typing import Dict, List, Union |
19 | 20 | from selenium.common.exceptions import WebDriverException
|
| 21 | +from selenium.webdriver.remote.webelement import WebElement |
20 | 22 |
|
21 | 23 |
|
22 |
| -def with_tag_name(tag_name): |
| 24 | +def with_tag_name(tag_name: str): |
23 | 25 | if not tag_name:
|
24 | 26 | raise WebDriverException("tag_name can not be null")
|
25 | 27 | return RelativeBy({"css selector": tag_name})
|
26 | 28 |
|
27 | 29 |
|
28 | 30 | class RelativeBy(object):
|
29 | 31 |
|
30 |
| - def __init__(self, root=None, filters=None): |
| 32 | + def __init__(self, root: Dict = None, filters: List = None): |
31 | 33 | self.root = root
|
32 | 34 | self.filters = filters or []
|
33 | 35 |
|
34 |
| - def above(self, element_or_locator=None): |
| 36 | + def above(self, element_or_locator: Union[WebElement, Dict] = None): |
35 | 37 | if not element_or_locator:
|
36 | 38 | raise WebDriverException("Element or locator must be given when calling above method")
|
37 | 39 |
|
38 | 40 | self.filters.append({"kind": "above", "args": [element_or_locator]})
|
39 | 41 | return self
|
40 | 42 |
|
41 |
| - def below(self, element_or_locator=None): |
| 43 | + def below(self, element_or_locator: Union[WebElement, Dict] = None): |
42 | 44 | if not element_or_locator:
|
43 | 45 | raise WebDriverException("Element or locator must be given when calling above method")
|
44 | 46 |
|
45 | 47 | self.filters.append({"kind": "below", "args": [element_or_locator]})
|
46 | 48 | return self
|
47 | 49 |
|
48 |
| - def to_left_of(self, element_or_locator=None): |
| 50 | + def to_left_of(self, element_or_locator: Union[WebElement, Dict] = None): |
49 | 51 | if not element_or_locator:
|
50 | 52 | raise WebDriverException("Element or locator must be given when calling above method")
|
51 | 53 |
|
52 | 54 | self.filters.append({"kind": "left", "args": [element_or_locator]})
|
53 | 55 | return self
|
54 | 56 |
|
55 |
| - def to_right_of(self, element_or_locator): |
| 57 | + def to_right_of(self, element_or_locator: Union[WebElement, Dict] = None): |
56 | 58 | if not element_or_locator:
|
57 | 59 | raise WebDriverException("Element or locator must be given when calling above method")
|
58 | 60 |
|
59 | 61 | self.filters.append({"kind": "right", "args": [element_or_locator]})
|
60 | 62 | return self
|
61 | 63 |
|
62 |
| - def near(self, element_or_locator_distance=None): |
| 64 | + def near(self, element_or_locator_distance: Union[WebElement, Dict, int] = None): |
63 | 65 | if not element_or_locator_distance:
|
64 | 66 | raise WebDriverException("Element or locator or distance must be given when calling above method")
|
65 | 67 |
|
|
0 commit comments