自动化之po模式,basepage模板

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
posted @ 2021-02-27 00:01  挑灯  阅读(85)  评论(0)    收藏  举报