Skip to content

Commit 93f5f9c

Browse files
committed
address deprecations - fix typing
1 parent abebe34 commit 93f5f9c

File tree

1 file changed

+36
-32
lines changed

1 file changed

+36
-32
lines changed

selenium_helpers/__init__.py

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import random
2-
2+
from selenium.webdriver.common.by import By
33
from selenium.webdriver.support import expected_conditions as EC
44
from selenium.webdriver.support.ui import WebDriverWait
5+
from selenium.webdriver.remote.webdriver import WebDriver
56

7+
from typing import Union
68

7-
def click(driver, element):
9+
def click(driver: WebDriver, element):
810
"""
911
Used to resolve issues caused while clicking an element.
1012
Very often, elements are overlayed in such a way that a click isn't as simple as it should be.
@@ -17,60 +19,52 @@ def click(driver, element):
1719

1820

1921
class YouFindPlaceHolder:
20-
def __init__(self, text):
22+
def __init__(self, text: str):
2123
self.text = text
2224

2325
def __call__(self, driver):
24-
element = driver.find_element_by_xpath(f'//input[@placeholder="{self.text}"]')
25-
if element:
26-
return element
27-
else:
28-
return False
26+
element = driver.find_element(
27+
By.XPATH,
28+
f'//input[@placeholder="{self.text}"]'
29+
)
30+
return element or False
2931

3032

3133
class YouFindText:
32-
def __init__(self, text):
34+
def __init__(self, text: str):
3335
self.text = text
3436

3537
def __call__(self, driver):
36-
element = driver.find_element_by_xpath(f'//*[contains(text(), "{self.text}")]')
37-
if element:
38-
return element
39-
else:
40-
return False
38+
element = driver.find_element(By.XPATH, f'//*[contains(text(), "{self.text}")]')
39+
return element or False
4140

4241

4342
class YouFindButtonText:
44-
def __init__(self, text):
43+
def __init__(self, text: str):
4544
self.text = text
4645

47-
def __call__(self, driver):
48-
element = driver.find_element_by_xpath(f'//button[.="{self.text}"]')
49-
if element:
50-
return element
51-
else:
52-
return False
46+
def __call__(self, driver: WebDriver):
47+
element = driver.find_element(By.XPATH, f'//button[.="{self.text}"]')
48+
return element or False
5349

5450

5551
class YouFindAllText:
56-
def __init__(self, text):
52+
def __init__(self, text: str):
5753
self.text = text
5854

59-
def __call__(self, driver):
60-
elements = driver.find_elements_by_xpath(
55+
def __call__(self, driver: WebDriver):
56+
elements = driver.find_elements(
57+
By.XPATH,
6158
f'//*[contains(text(), "{self.text}")]',
6259
)
63-
if elements:
64-
return elements
65-
else:
66-
return False
60+
return elements or False
6761

6862

6963
class URLToBe:
70-
def __init__(self, url):
64+
def __init__(self, url: str):
7165
self.url = url
7266

73-
def __call__(self, driver):
67+
def __call__(self, driver: WebDriver):
7468
try:
7569
res = EC.url_to_be(self.url)(driver)
7670
if res:
@@ -81,7 +75,12 @@ def __call__(self, driver):
8175
return EC.url_to_be(f'{self.url}/')(driver)
8276

8377

84-
def wait_until(driver, expected_condition, value, timeout=10):
78+
def wait_until(
79+
driver: WebDriver,
80+
expected_condition,
81+
value,
82+
timeout: int = 10
83+
):
8584
"""
8685
Allows you to wait until some condition is met.
8786
@@ -120,7 +119,12 @@ def wait_until(driver, expected_condition, value, timeout=10):
120119
return WebDriverWait(driver, timeout).until(ec(value), message=msg)
121120

122121

123-
def potential_refresh(driver, expected_condition, value, chance=0.99):
122+
def potential_refresh(
123+
driver: WebDriver,
124+
expected_condition,
125+
value,
126+
chance: float = 0.99
127+
):
124128
if random.uniform(0, 1) > chance:
125129
driver.refresh()
126130
return wait_until(driver, expected_condition, value)

0 commit comments

Comments
 (0)