from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from Base import Driver
from Base import MySetting
class BasePage:
def __init__(self, browser_type=MySetting.browser_type):
self.driver = Driver.Driver.get_driver(browser_type)
def get_element(self, locator):
WebDriverWait(self.driver, MySetting.timeOut, MySetting.pollTime).until(
ec.visibility_of_element_located(locator)
)
return self.driver.find_element(*locator)
def get_elements(self, locator):
WebDriverWait(self.driver, MySetting.timeOut, MySetting.pollTime).until(
ec.visibility_of_element_located(locator)
)
return self.driver.find_elements(*locator)
def switch_to_view(self, target):
all_page = self.driver.window_handles
for next_page in all_page:
if not target[1] in getattr(self.driver, target[0]):
self.driver.switch_to.window(next_page)
else:
break
def once_scroll_to_target(self, target_element):
# x, y = target_element.location_once_scrolled_into_view
js = f'var action=document.documentElement.scrollTop={target_element.location.get("y")-100}'
self.driver.execute_script(js)
def until_scroll_to_target(self, target_element, once_height=100):
js = f'var action=document.documentElement.scrollTop={once_height}'
while True:
self.driver.execute_script(js)
if target_element.is_enabled():
break