Skip to content

Commit

Permalink
Merge pull request #52 from Integration-Automation/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
JE-Chen authored Jul 17, 2023
2 parents 70dd343 + ac30d17 commit ea479e5
Show file tree
Hide file tree
Showing 16 changed files with 562 additions and 166 deletions.
2 changes: 1 addition & 1 deletion .idea/WebRunner.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions dev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "je_web_runner_dev"
version = "0.0.72"
version = "0.0.75"
authors = [
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
]
Expand Down Expand Up @@ -43,4 +43,4 @@ content-type = "text/markdown"
license-files = ["LICENSE"]

[tool.setuptools.packages]
find = { namespaces = false }
find = { namespaces = false }
53 changes: 37 additions & 16 deletions je_web_runner/je_web_runner/element/web_element_wrapper.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from sys import stderr
from typing import List

from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support.ui import Select

from je_web_runner.utils.assert_value.result_check import check_web_element_details
from je_web_runner.utils.logging.loggin_instance import web_runner_logger
from je_web_runner.utils.test_record.test_record_class import record_action_to_list


Expand All @@ -19,86 +19,93 @@ def submit(self) -> None:
current web element submit
:return: None
"""
web_runner_logger.info(f"WebElementWrapper submit")
try:
self.current_web_element.submit()
record_action_to_list("Web element submit", None, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper submit, failed: {repr(error)}")
record_action_to_list("Web element submit", None, error)

def clear(self) -> None:
"""
current web element clear
:return: None
"""
web_runner_logger.info(f"WebElementWrapper clear")
try:
self.current_web_element.clear()
record_action_to_list("Web element clear", None, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper clear, failed: {repr(error)}")
record_action_to_list("Web element clear", None, error)

def get_property(self, name: str) -> str:
"""
:param name: name of property
:return: property value as str
"""
web_runner_logger.info(f"WebElementWrapper get_property, name: {name}")
param = locals()
try:
record_action_to_list("Web element get_property", param, None)
return self.current_web_element.get_property(name)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper get_property, name: {name}, failed: {repr(error)}")
record_action_to_list("Web element get_property", param, error)

def get_dom_attribute(self, name: str) -> str:
"""
:param name: name of dom
:return: dom attribute value as str
"""
web_runner_logger.info(f"WebElementWrapper get_dom_attribute, name: {name}")
param = locals()
try:
record_action_to_list("Web element get_dom_attribute", param, None)
return self.current_web_element.get_dom_attribute(name)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper get_dom_attribute, name: {name}, failed: {repr(error)}")
record_action_to_list("Web element get_dom_attribute", param, error)

def get_attribute(self, name: str) -> str:
"""
:param name: name of web element
:return:web element attribute value as str
"""
web_runner_logger.info(f"WebElementWrapper get_attribute, name: {name}")
param = locals()
try:
record_action_to_list("Web element get_attribute", param, None)
return self.current_web_element.get_attribute(name)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper get_attribute, name: {name}, failed: {repr(error)}")
record_action_to_list("Web element get_attribute", param, error)

def is_selected(self) -> bool:
"""
check current web element is selected or not
:return: True or False
"""
web_runner_logger.info(f"WebElementWrapper is_selected")
try:
record_action_to_list("Web element is_selected", None, None)
return self.current_web_element.is_selected()
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper get_attribute, failed: {repr(error)}")
record_action_to_list("Web element is_selected", None, error)

def is_enabled(self) -> bool:
"""
check current web element is enable or not
:return: True or False
"""
web_runner_logger.info(f"WebElementWrapper is_enabled")
try:
record_action_to_list("Web element is_enabled", None, None)
return self.current_web_element.is_enabled()
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper is_enabled, failed: {repr(error)}")
record_action_to_list("Web element is_enabled", None, error)

def input_to_element(self, input_value: str) -> None:
Expand All @@ -107,62 +114,70 @@ def input_to_element(self, input_value: str) -> None:
:param input_value: what value we want to input to current web element
:return: None
"""
web_runner_logger.info(f"WebElementWrapper input_to_element, input_value: {input_value}")
param = locals()
try:
self.current_web_element.send_keys(input_value)
record_action_to_list("Web element input_to_element", param, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(
f"WebElementWrapper input_to_element, input_value: {input_value}, "
f"failed: {repr(error)}")
record_action_to_list("Web element input_to_element", param, error)

def click_element(self) -> None:
"""
click current web element
:return: None
"""
web_runner_logger.info(f"WebElementWrapper click_element")
try:
self.current_web_element.click()
record_action_to_list("Web element click_element", None, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper click_element, failed: {repr(error)}")
record_action_to_list("Web element click_element", None, error)

def is_displayed(self) -> bool:
"""
check current web element is displayed or not
:return: True or False
"""
web_runner_logger.info(f"WebElementWrapper is_displayed")
try:
record_action_to_list("Web element is_displayed", None, None)
return self.current_web_element.is_displayed()
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper is_displayed, failed: {repr(error)}")
record_action_to_list("Web element is_displayed", None, error)

def value_of_css_property(self, property_name: str) -> str:
"""
:param property_name: name of property
:return: css property value as str
"""
web_runner_logger.info(f"WebElementWrapper value_of_css_property, property_name: {property_name}")
param = locals()
try:
record_action_to_list("Web element value_of_css_property", param, None)
return self.current_web_element.value_of_css_property(property_name)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(
f"WebElementWrapper value_of_css_property, property_name: {property_name}, failed: {repr(error)}")
record_action_to_list("Web element value_of_css_property", param, error)

def screenshot(self, filename: str) -> bool:
"""
:param filename: full file name not need .png extension
:return: Save True or not
"""
web_runner_logger.info(f"WebElementWrapper screenshot, filename: {filename}")
param = locals()
try:
record_action_to_list("Web element screenshot", param, None)
return self.current_web_element.screenshot(filename + ".png")
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.info(f"WebElementWrapper screenshot, filename: {filename}, failed: {repr(error)}")
record_action_to_list("Web element screenshot", param, error)

# Web element wrapper add function
Expand All @@ -171,37 +186,43 @@ def change_web_element(self, element_index: int) -> None:
:param element_index: change to web element index
:return: web element list [element_index]
"""
web_runner_logger.info(f"WebElementWrapper change_web_element, element_index: {element_index}")
param = locals()
try:
self.current_web_element = self.current_web_element_list[element_index]
record_action_to_list("Web element change_web_element", param, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(
f"WebElementWrapper change_web_element, element_index: {element_index}, failed: {repr(error)}")
record_action_to_list("Web element change_web_element", param, error)

def check_current_web_element(self, check_dict: dict) -> None:
"""
:param check_dict: check web element dict {name: should be value}
:return: None
"""
web_runner_logger.info(f"WebElementWrapper check_current_web_element, check_dict: {check_dict}")
param = locals()
try:
check_web_element_details(self.current_web_element, check_dict)
record_action_to_list("Web element check_current_web_element", param, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(
f"WebElementWrapper change_web_element, check_dict: {check_dict}, "
f"failed: {repr(error)}")
record_action_to_list("Web element check_current_web_element", param, error)

def get_select(self) -> Select:
"""
get Select(current web element)
:return: Select(current web element)
"""
web_runner_logger.info(f"WebElementWrapper get_select")
try:
record_action_to_list("Web element get_select", None, None)
return Select(self.current_web_element)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebElementWrapper get_select, failed: {repr(error)}")
record_action_to_list("Web element get_select", None, error)


Expand Down
22 changes: 16 additions & 6 deletions je_web_runner/je_web_runner/manager/webrunner_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from je_web_runner.je_web_runner.webdriver.webdriver_wrapper import webdriver_wrapper
from je_web_runner.utils.exception.exception_tags import selenium_wrapper_web_driver_not_found_error
from je_web_runner.utils.exception.exceptions import WebRunnerWebDriverIsNoneException
from je_web_runner.utils.logging.loggin_instance import web_runner_logger
from je_web_runner.utils.test_object.test_object_record.test_object_record_class import test_object_record
from je_web_runner.utils.test_record.test_record_class import record_action_to_list

Expand All @@ -26,13 +27,16 @@ def new_driver(self, webdriver_name: str, **kwargs) -> None:
:param kwargs: webdriver download manager param
:return: None
"""
web_runner_logger.info(f"WebdriverManager new_driver, webdriver_name: {webdriver_name}, params: {kwargs}")
param = locals()
try:
self.current_webdriver = webdriver_wrapper.set_driver(webdriver_name, **kwargs)
self._current_webdriver_list.append(self.current_webdriver)
record_action_to_list("web runner manager new_driver", param, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(
f"WebdriverManager new_driver, webdriver_name: {webdriver_name}, params: {kwargs}, failed: {repr(error)}"
)
record_action_to_list("web runner manager new_driver", param, error)
self.quit()

Expand All @@ -42,26 +46,29 @@ def change_webdriver(self, index_of_webdriver: int) -> None:
:param index_of_webdriver: change current webdriver to choose index webdriver
:return: None
"""
web_runner_logger.info(f"WebdriverManager change_webdriver, index_of_webdriver: {index_of_webdriver}")
param = locals()
try:
self.current_webdriver = self._current_webdriver_list[index_of_webdriver]
self.webdriver_wrapper.current_webdriver = self.current_webdriver
record_action_to_list("web runner manager change_webdriver", param, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(
f"WebdriverManager change_webdriver, index_of_webdriver: {index_of_webdriver}, failed: {repr(error)}")
record_action_to_list("web runner manager change_webdriver", param, error)

def close_current_webdriver(self) -> None:
"""
close current webdriver
:return: None
"""
web_runner_logger.info(f"WebdriverManager close_current_webdriver")
try:
self._current_webdriver_list.remove(self.current_webdriver)
self.current_webdriver.close()
record_action_to_list("web runner manager close_current_webdriver", None, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.error(f"WebdriverManager close_current_webdriver, failed: {repr(error)}")
record_action_to_list("web runner manager close_current_webdriver", None, error)

def close_choose_webdriver(self, webdriver_index: int) -> None:
Expand All @@ -70,21 +77,23 @@ def close_choose_webdriver(self, webdriver_index: int) -> None:
:param webdriver_index: close choose webdriver on current webdriver list
:return: None
"""
web_runner_logger.info(f"WebdriverManager close_choose_webdriver")
param = locals()
try:
self.current_webdriver = self._current_webdriver_list[webdriver_index]
self.current_webdriver.close()
self._current_webdriver_list.remove(self._current_webdriver_list[webdriver_index])
record_action_to_list("web runner manager close_choose_webdriver", param, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.info(f"WebdriverManager close_choose_webdriver, failed: {repr(error)}")
record_action_to_list("web runner manager close_choose_webdriver", param, error)

def quit(self) -> None:
"""
close and quit all webdriver instance
:return: None
"""
web_runner_logger.info(f"WebdriverManager quit")
try:
if self._current_webdriver_list is None:
raise WebRunnerWebDriverIsNoneException(selenium_wrapper_web_driver_not_found_error)
Expand All @@ -94,7 +103,7 @@ def quit(self) -> None:
self._current_webdriver_list = list()
record_action_to_list("web runner manager quit", None, None)
except Exception as error:
print(repr(error), file=stderr)
web_runner_logger.info(f"WebdriverManager quit, failed: {repr(error)}")
record_action_to_list("web runner manager quit", None, error)
raise WebDriverException

Expand All @@ -106,7 +115,8 @@ def get_webdriver_manager(webdriver_name: str, **kwargs) -> WebdriverManager:
:param kwargs: webdriver download manager param
:return: Webdriver manager instance
"""
web_runner.new_driver(webdriver_name)
web_runner_logger.info(f"get_webdriver_manager, webdriver_name: {webdriver_name}, params: {kwargs}")
web_runner.new_driver(webdriver_name, **kwargs)
return web_runner


Expand Down
Loading

0 comments on commit ea479e5

Please sign in to comment.