• 常用封装方法


    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    import win32gui
    import win32con
    import os
    
    
    def open_browser(browser="chrome"):
        """
        打开浏览器
        :param browser: 浏览器名称
        :return:
        """
    
        if browser == "chrome":
            driver = webdriver.Chrome()
        elif browser == "firefox":
            driver = webdriver.Firefox()
        elif browser == "ie":
            driver = webdriver.Ie()
        else:
            print("请输入正确的浏览器名称,例如:'chrome','firefox','ie'")
            driver = None
        return driver
    
    
    class Base:
        def __init__(self, driver):
            """
            初始化浏览器
            :param driver:
            """
            self.driver = driver
    
        def open_url(self, url):
            """
            打开网址
            :param url: 网址
            :return:
            """
            try:
                self.driver.get(url)
                # 浏览器最大化
                self.driver.maximize_window()
            except Exception as msg:
                print(msg)
    
        def close(self):
            """
            关闭浏览器
            :return:
            """
            try:
                self.driver.quit()
            except Exception as e:
                print(e)
    
        def local_time(self):
            """
            获取当前时间
            :return:
            """
            times = time.time()
            local_time = time.localtime(times)
            print("运行时间戳:", time.strftime("%Y-%m-%d %H:%M:%S", local_time))
    
        def find_element(self, locator, timeout=10):
            """
            定位单个元素
            :param:locator:定位器,元组格式("id","id属性值")
            :return:
            """
            try:
                element = WebDriverWait(self.driver, timeout).until(EC.presence_of_element_located(locator))
                return element
            except:
                print(f"元素{locator}没找到")
                return False
    
        def find_elements(self, locator, timeout=10):
            """
            定位一组元素
            :param locator: 定位器
            :param timeout: 最大等待时间
            :return:
            """
            try:
                elements = WebDriverWait(self.driver, timeout).until(EC.presence_of_all_elements_located(locator))
                return elements
            except:
                print(f"元素{locator}没找到")
                return False
    
        def click(self, locator):
            """
            点击元素
            :return:
            """
            element = self.find_element(locator)
            try:
                element.click()
            except Exception as msg:
                print(msg)
    
        def send_Keys(self, locator, text):
            """
            输入
            :param locator: 定位器,元组
            :param text: 需要输入的文本
            :return:
            """
            element = self.find_element(locator)
            try:
                element.send_keys(Keys.CONTROL, 'a')
                element.send_keys(text)
            except Exception as msg:
                print(msg)
    
        def is_text_in_element(self, locator, text, timeout=10):
            """
            判断文本是否在元素的文本中,如果在返回True,如果不在返回False
            :param locator: 定位器,元组
            :param text: 文本
            :return:
            """
            try:
                result = WebDriverWait(self.driver, timeout).until(EC.text_to_be_present_in_element(locator, text))
                return result
            except:
                return False
    
        def is_value_in_element(self, locator, value, timeout=10):
            """
            判断value值是否是元素value属性,对应的值,如果是,返回True,否则返回False
            :param locator: 定位器,元组
            :param value: 文本
            :param timeout:
            :return:
            """
            try:
                result = WebDriverWait(self.driver, timeout).until(EC.text_to_be_present_in_element_value(locator, value))
                return result
            except:
                return False
    
        def is_selected(self, locator):
            """
            判断元素是否被选中:如果选中,返回True,否则返回False
            :return:
            """
            element = self.find_element(locator)
            try:
                result = element.is_selected()
                return result
            except:
                return False
    
        def get_attribute(self, locator):
            """
            获取input标签里的value值内容
            :param locator:
            :return:
            """
            element = self.find_element(locator)
            try:
                ele_value = element.get_attribute('value')
                return ele_value
            except:
                return False
    
        def get_screenshot(self):
            """
            获取错误或者异常的截图照片
            :param:
            :return:
            """
            picture_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
            print(picture_time)
            try:
                picture_url = driver.get_screenshot_as_file('image' + picture_time + '.png')
                print("%s:截图成功!!!" % picture_url)
            except BaseException as msg:
                print(msg)
    
        def update_edition(self):
            """
            从本地选择适合升级的版本,升级版本
            :param :
            :return:
            """
            # win32gui
            dialog = win32gui.FindWindow('#32770', u'打开')  # 对话框
            ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
            ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
            Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None)  # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
            button = win32gui.FindWindowEx(dialog, 0, 'Button', None)  # 确定按钮Button
    
            win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r'E:\testMV\DunwuDetect2V8.238002.18_20201120.zip')
            time.sleep(2)
            win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)  # 按button
            time.sleep(5)
  • 相关阅读:
    将aaaa替换成aaba 分类: python 小练习 2013-10-28 18:28 246人阅读 评论(0) 收藏
    使用生成器返回fibs列表 分类: python Module python基础学习 2013-10-28 18:19 283人阅读 评论(0) 收藏
    python中的生成器(generator) 分类: python Module python基础学习 2013-10-28 17:41 310人阅读 评论(0) 收藏
    遇到的问题总结 分类: 问题总结 2013-10-28 17:21 263人阅读 评论(0) 收藏
    win7 下安装ipython 分类: python基础学习 software 2013-10-19 12:23 1383人阅读 评论(0) 收藏
    获取函数中的参数 分类: 正则表达式 2013-10-16 15:14 221人阅读 评论(0) 收藏
    使用termcolor模块 分类: python Module 2013-10-12 14:06 459人阅读 评论(0) 收藏
    Mysql启动失败
    java-抽象类
    java三大特性--多态(1)
  • 原文地址:https://www.cnblogs.com/wzhqzm/p/14299074.html
Copyright © 2020-2023  润新知