diff --git a/base/base.py b/base/base.py index 0c0ad6faef318d61e05f254c295308a253865c57..75aeacaa75d5de3bd559a2178aa55ca329cc7022 100644 --- a/base/base.py +++ b/base/base.py @@ -1,18 +1,22 @@ +# -*- coding: utf-8 -*- + +# @Author: hoganzhang +# @Email: hoganzhang@tinnove.com.cn +# @Software: PyCharm +# @File: base.py +# @Time: 2023/8/18 10:36 import os import time from loguru import logger -from selenium.webdriver import ActionChains -from selenium.webdriver.common.by import By -from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.support.select import Select from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys -from common.parse_yaml import parse_yaml +from common.common import read_json -png_path = parse_yaml("wms.path.png") +png_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "png\\") class BasePage: @@ -29,12 +33,13 @@ class BasePage: self.driver = driver # 页面截图:截图操作 - def save_screenshot(self, doc=""): + def save_screenshot(self, doc="doc"): """页面截图 :param doc: 需要提示的模块 :return 不需要返回值 """ file_path = png_path + f"{doc}_{time.strftime('%y%m%d%H%M%S', time.localtime())}.png" + print(file_path) try: self.driver.save_screenshot(file_path) logger.info(f"截图成功, 文件路径:{file_path}") @@ -158,9 +163,9 @@ class BasePage: else: ele.send_keys(Keys.Ctrontrol, 'a') ele.send_keys(Keys.BACKSPACE) - logger.info(f"模块:{doc},清楚元素内容成功, 清除方式{type},操作元素{ele.get_attribute('outerHTML')}") + logger.info(f"模块:{doc},清除元素内容成功, 清除方式{type},操作元素{ele.get_attribute('outerHTML')}") except: - logger.error(f"{doc}-清楚元素内容失败!, 清除方式{type},操作元素{ele.get_attribute('outerHTML')}") + logger.error(f"{doc}-清除元素内容失败!, 清除方式{type},操作元素{ele.get_attribute('outerHTML')}") self.save_screenshot(doc) raise @@ -354,10 +359,54 @@ class BasePage: self.driver.quit() logger.info(f"退出浏览器成功") + def is_element_exist(self, by, value): + """ + 判断元素是否存在 + :return: 存在返回True 不存在返回False + """ + flage = self.get_all_element(by, value) + if len(flage) != 0: + return True + else: + return False + + def get_cookie(self, name): + """ + 根据cookiename 获取cookie + :param name: + :return: cookie + """ + try: + cookie = self.driver.get_cookie(name) + return cookie + except: + raise + + def open_page(self, url): + try: + self.driver.get(url) + # self.driver.get(url) + logger.info(f"请求页面:{url}") + self.sleep(1, "打开页面后等待") + except Exception as e: + logger.error(f"请求页面时异常...{url}") + logger.error(e) + + def put_cookie(self): + cookie = read_json() + if cookie is not None: + self.driver.add_cookie(cookie) + logger.info(f"添加cookie成功:{cookie}") + else: + logger.error(f"cookie获取为空:{cookie}") + raise + if __name__ == '__main__': - from selenium import webdriver - driver = webdriver.Chrome() - driver.maximize_window() - driver.get("http://www.baidu.com") - ele: WebElement = driver.find_element(By.ID, "kw") + pass + # driver = webdriver.Chrome() + # driver.get("http://test.auto-pai.cn") + # base = BasePage(driver) + # base.put_cookie() + +