线上第六期_selenium 基础课 结合_0819

PageObject:

工具模块–>区域页面文件–>testcase/test_.py
如果工具模块要调整只修改工具模块。
如果业务调整就修改 区域页面文件和testcase/test_
.py
精简版 是业务代码只修改testcase/test_*.py testcase/.py文件按区域划分
工具模块把APi封装成更便捷和稳定,精简代码量 具体可以看助教老师 资料的文件
也可以在魔法学院里搜其他我写的selenium帖子

APi封装

拉起浏览器
跳转其他浏览器+断言
单个元素显式等待
多个元素显式等待
单个元素非显式等待
单击/双击 封装
定位器+send_keys
定位器+单击/双击
…等等
里面webdriver api很多都i加了断言模式 比如以下


def assert_title(self, titleText):
        """
        页面标题上是否包含关键字,支持传入多个参数
        :param titleStr: 关键字
        :param args: 支持传入多个参数
        :return:布尔
        """
        try:
            assert titleText in self.driver.title, \\
                "在title里没有找到%s" % titleText
            print("加载网页正确")  # 业务self.assertTrue()
            return True
        except Exception as error:
            print(format(error))
            return False

def _get_current_url(self, _url):
        try:
            assert _url == self.driver.current_url
        except Exception as error:
            print(format(error))

def F5(self, _url):
        """
        刷新后验证网页正确  now_url覆写使用
        :return:
        """
        self.driver.refresh()
        print("刷新正确")
        self._get_current_url(_url)  # 刷新后判断当前网页

def forward(self, _url, time_wait=4):
        """
        配合浏览器回退使用,回到之前的页面
        :param _url:形参是验证当前页面
        :param time_wait:属于time_sleep方法
        :return:
        """
        self.time_sleep(time_wait)
        self.driver.forward()
        self._get_current_url(_url)
        print("forward网页成功")

工程结构


D:selenium_uses
│  
│  run.py           入口函数执行run.py
│  __init__.py
│        
├─Conf
│  │  caseSkip.py   unittest.skip用
│  │  config.ini    配置文件
│  │  filedata.txt  
│  │  setting.py    公共导入库
│          
├─driver    驱动文件 和浏览器版本挂钩
│      chromedriver.exe
│      geckodriver.exe
│      IEDriverServer.exe
│      
├─logs      日志文件夹
│      WebTest_20180820_0000.log
│      WebTest_20180820_0008.log
│      WebTest_20180820_0018.log
│      
├─Pic       截图文件夹
│      loginFiled.jpg
│      test_send_keys.jpg
│      
├─Report-20180819  当日报告
│      Report-222156.html  22:21:56
│      
├─test     临时文件夹可以命名为temp
│      sizelog.txt 尺寸写入
│      __init__.py
│      
├─test_case   *测试用例
│  │  test_baidu_api.py  
│  │  test_baidu_keys.py
│  │  test_checkTesterhome.py
│  │  test_loginTesterhome.py
│  │  test_loginTesterhome_log.py
│  │  test_tianmao.py
│  │  utils_import.py
│  │  __init__.py  文件夹提升成模块
│  └─  
│          
├─test_data   数据驱动 可以和Conf放在一起
│      data.xlsx  如果大量文件都是用excel读取的就摆这里
│      __init__.py 直接读不用init
│      
└─util    工具类模块
    │  Base.py  基本类,不包含webdriver
    │  ClientSelenium.py  包含webdriver
    │  Err.py             异常类
    │  HTMLTestRunner.py  *报告类 即时使用
    │  log.py\t\t   *日志类 即时使用
    │  ParserConfig.py    读取ini文件
    │  ReadOpenData.py\t   读取excel文件
    │  __init__.py        文件夹提升成模块
  

作业

1.0818的作业可以用封装过的来实现。
2.util/ClientSelenium.py可以从头到尾敲一次, 随着工作中学习,可以继续丰富