Skip to content

Commit 2e23435

Browse files
authored
Revert "restructuring project file structure"
1 parent c9d2e89 commit 2e23435

File tree

6 files changed

+52
-54
lines changed

6 files changed

+52
-54
lines changed

s_tool/driver.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
from webdriver_manager.firefox import GeckoDriverManager
66
from webdriver_manager.utils import ChromeType
77

8-
from s_tool.exceptions import SToolException
98
from s_tool.utils import (
9+
SToolException,
1010
click,
1111
current_url,
1212
get_cookies,
@@ -93,4 +93,8 @@ def _load_methods(self):
9393

9494

9595
if __name__ == "__main__":
96-
pass
96+
97+
# Create A Driver Object
98+
with SeleniumDriver("firefox", headless=False) as obj:
99+
# visit https:example.com
100+
obj.visit(r"https://quotes.toscrape.com/")

s_tool/parser.py

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,5 @@
1-
from s_tool.utils import get_element
1+
class Parser(object):
2+
"""Parse data from webdriver"""
23

3-
4-
def select_options(element, swap=None, text_exclude=[]):
5-
"""Return dropdown option in key value pair
6-
7-
Args:
8-
element : An select element
9-
text_exclude : list of values to exclude from result
10-
11-
Returns:
12-
return dict of values and text of select element,
13-
return empty dict() if element is not valid or not exists
14-
"""
15-
option_dict = dict()
16-
if element and hasattr(element, "tag_name") and element.tag_name == "select":
17-
options = get_element(element, "tag_name", "option", many=True)
18-
for option in options:
19-
func = option.get_attribute
20-
text, value = func("text"), func("value")
21-
if text not in text_exclude:
22-
if swap:
23-
text, value = value, text
24-
option_dict[value] = text
25-
26-
return option_dict
4+
def __init__(self, driver):
5+
self.driver = driver

s_tool/utils/__init__.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from utils.driver_exceptions import SToolException
4+
from utils.driver_utils import (
5+
click,
6+
current_url,
7+
get_cookies,
8+
get_element,
9+
get_locator,
10+
get_session,
11+
hide_show_elements,
12+
page_source,
13+
take_screenshot,
14+
visit,
15+
)
16+
17+
__all__ = [
18+
"SToolException",
19+
"current_url",
20+
"get_element",
21+
"get_session",
22+
"page_source",
23+
"visit",
24+
"get_locator",
25+
"click",
26+
"get_cookies",
27+
"take_screenshot",
28+
"hide_show_elements",
29+
]
Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
1-
from typing import Union
2-
3-
from selenium import webdriver
41
from selenium.common.exceptions import NoSuchElementException, TimeoutException
52
from selenium.webdriver.common.by import By
63
from selenium.webdriver.support import expected_conditions as EC
74
from selenium.webdriver.support.ui import WebDriverWait
85

9-
from s_tool.exceptions import SToolException
6+
from s_tool.utils.driver_exceptions import SToolException
107

118

12-
def get_session(driver: webdriver) -> str:
9+
def get_session(driver):
1310
"""Return Selenium Driver session id"""
1411
return driver.session_id
1512

1613

17-
def visit(driver: webdriver, url: str) -> None:
14+
def visit(driver, url):
1815
"""visit given url"""
1916
driver.get(url)
2017

2118

22-
def page_source(driver: webdriver) -> str:
19+
def page_source(driver):
2320
"""Return html page source"""
2421
return driver.page_source
2522

2623

27-
def current_url(driver: webdriver) -> str:
24+
def current_url(driver):
2825
"""Return current url"""
2926
return driver.current_url
3027

3128

32-
def get_locator(locator_type: str, locator_text: str) -> tuple:
29+
def get_locator(locator_type, locator_text):
3330
"""Return element locator
3431
3532
Args:
@@ -43,9 +40,7 @@ def get_locator(locator_type: str, locator_text: str) -> tuple:
4340
return getattr(By, locator), locator_text
4441

4542

46-
def get_element(
47-
driver: webdriver, locator_type: str, locator_text: str, many: bool = None
48-
):
43+
def get_element(driver, locator_type, locator_text, many=None):
4944
"""Get element using locator type and locator text
5045
5146
Args:
@@ -77,9 +72,7 @@ def get_element(
7772
raise SToolException("INVALID_SELECTOR")
7873

7974

80-
def click(
81-
driver: webdriver, locator_type: str, locator_text: str, click_time: int = 10
82-
) -> Union[bool, None]:
75+
def click(driver, locator_type, locator_text, click_time=10):
8376
"""Return True if element clicked otherwise return None
8477
8578
Args:
@@ -106,7 +99,7 @@ def click(
10699
raise SToolException(ex)
107100

108101

109-
def get_cookies(driver: webdriver) -> dict:
102+
def get_cookies(driver):
110103
"""Accept driver object and return cookies in dictionary
111104
112105
Args:
@@ -121,7 +114,7 @@ def get_cookies(driver: webdriver) -> dict:
121114
return cookies_dict or {}
122115

123116

124-
def take_screenshot(driver: webdriver, element: tuple = None) -> Union[bytes, None]:
117+
def take_screenshot(driver, element=None):
125118
"""take screenshot of given element if element is
126119
not given take a full page screeenshot and return
127120
data in bytes
@@ -150,7 +143,7 @@ def take_screenshot(driver: webdriver, element: tuple = None) -> Union[bytes, No
150143
return driver.get_screenshot_as_png()
151144

152145

153-
def display_element(driver: webdriver, element, hide=None) -> None:
146+
def display_element(driver, element, hide=None):
154147
"""hide or show single element
155148
156149
Args:
@@ -166,7 +159,7 @@ def display_element(driver: webdriver, element, hide=None) -> None:
166159
driver.execute_script(f"arguments[0].style.display = '{hide_or_show}';", element)
167160

168161

169-
def hide_show_elements(driver: webdriver, elements: list, hide: bool = None) -> None:
162+
def hide_show_elements(driver, elements, hide=None):
170163
"""hide or show multiple elements
171164
172165
Args:
@@ -181,7 +174,7 @@ def hide_show_elements(driver: webdriver, elements: list, hide: bool = None) ->
181174
"""
182175
for element_locator in elements:
183176
locator_type, locator_value = element_locator
184-
element_list = get_element(driver, locator_type, locator_value, many=True)
177+
element_list = get_element(driver, locator_type, locator_value, 1)
185178
if element_list:
186179
for element in element_list:
187180
display_element(driver, element, hide)

tests/test_webdrivers.py

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)