zoukankan      html  css  js  c++  java
  • 【selenium学习中级篇 -20】封装BasePage基础类

     在Base包中新建一个BasePage.py 这个文件中,主要封装一些基础的操作,比如说打开url,关闭浏览器,点击,输入,获取元素等与业务逻辑无关的最底层的操作

    这个类,可以根据不同的项目需求进行拓展,本文只是举了一个简单的例子

    class BasePage(object):
        def __init__(self, driver):
            self.driver = driver
    
        # 打开url
        def get_url(self, url):
            self.driver.get(url)
    
        # 退出浏览器
        def quit_browser(self):
            self.driver.quit()
    
        # 获取元素
        def find_element(self, selector):
            element = ''
            if '=>' not in selector:
                return selector.driver.find_element_by_xpath(selector)
            selector_by = selector.split('=>')[0]
            selector_value = selector.split('=>')[1]
            if selector_by == 'id':
                element = self.driver.find_element_by_id(selector_value)
            elif selector_by == 'name':
                element = self.driver.find_element_by_name(selector_value)
            elif selector_by == 'xpath':
                element = self.driver.find_element_by_xpath(selector_value)
            elif selector_by == 'linkText':
                element = self.driver.find_element_by_link_text(selector_value)
            elif selector_by == 'partialLinkText':
                element = self.driver.find_element_by_partial_link_text(selector_value)
            elif selector_by == 'css':
                element = self.driver.find_element_by_css_selector(selector_value)
    
            return element
    
        # 输入字符
        def type(self, selector, text):
            el = self.find_element(selector)
            el.clear()
            el.send_keys(text)
    
        # 清空
        def clear(self, selector):
            el = self.find_element(selector)
            el.clear()
    
        # 点击操作
        def click(self, selector):
            el = self.find_element(selector)
            el.click()
    
        # 获取页面title
        def get_page_title(self):
            return self.driver.title
    
        # 获取当前页面的url
        def get_page_url(self):
            return self.driver.current_url
    
        # 切换到新的窗口
        def switch_handle(self):
            handles = self.driver.window_handles
            for newhandle in handles:
                if newhandle != self.driver.current_window_handle:
                    self.driver.switch_to.window(newhandle)
  • 相关阅读:
    线程和进程
    Java多线程实现(四种方法)
    Java中的锁
    synchronized和java.util.concurrent.locks.Lock
    Lock的实现类ReentrantLock&Condition类的await/signal/signalAll(生产者消费者场景)
    synchronized&Object类的wait/notify/notifyAll(生产者消费者场景)
    SQL语句优化
    面试
    数据库三大范式
    设计模式之JDK动态代理源码分析
  • 原文地址:https://www.cnblogs.com/ronyjay/p/12972968.html
Copyright © 2011-2022 走看看