线上第七期_selenium 基础课 大纲&回顾贴

作业(重要)

关注浏览器环境,今天作业用 谷歌和火狐浏览器分别做,IE就算了。注意课堂上说的定位器优先使用顺序。
selenium和appium不一样,xpath万金油是次要与css选择器,主要是因为兼容性问题,不同浏览器加载入可能不一样。
尽量用ID,name,link,css选择器,作业内容如下:

  • 打开testerhome
  • 打开testerhome并点击置顶帖
  • 使用显式等待
  • 打开testerhome并搜索appium
  • 使用ID,name,link,className,css,xpath定位器一样定位一个。
  • 更换其他的浏览器(火狐浏览器)在做一次,主要是为了解决环境,有兴趣的可以火狐那边不复制代码,重找几个定位器的点。

扩展内容(优先上面的):

  • 写5个以上不同数据格式的断言例子,包含In , ==,布尔判断,反向条件。
    这个中途会有答案。

Pycharm

驱动进行匹配
虚拟环境使用和规则。
如何前往目录
模块各司其职,temp用来不用单元测试框架写拆解工程代码调式,不提交,test_case存放代码。

单元测试框架

pytest在OOP方面的规则,往上约定 模块名称,往下约定类名称和类下面函数名称
pytest的三大类断言和条件反向断言布尔 和技巧 在代码那边还讲了断言类型的方式
unittest使用和约定(学生要求的)

selemnium 基础API

拉起浏览器环节的异常代码处理 和 判断断言失败的异常代码处理 分别用什么。
浏览器当前源码 self.driver.page_source()
浏览器当前页面 self.driver.current_url()
send_keys(“”) sumbit() click()
element.size #尺寸 读取dict
隐式等待 (总超时的时长15) 12 每次间隔100ms之内,在self.driver生命周期内 全局有效
显示等待(poll 轮询时间 0.5)12 用于toast和全部定位或者一些有限生命周期内的元素
定位器 除了tag_name以外的定位方式

计算机科学&通用技术

OOP讲解 OOP的属性
self.driver的self是类绑定状态,形参列表的self是成员函数判断在哪个类里面
什么是别名和变量对象
self.driver引用后面对象是P和M的差别。

课堂中途代码演练

传送门帖子
完整代码 已经给了鸣人老师

工程结构

主体是不变的。

project名
     util(工具类模块)
           init.py  <--提升文件夹到模块
           common.py (selenium工具类)
           Base.py(工具的基础类)
           ...其他省略

     Conf(配置类模块)
            init.py <--提升文件夹到模块
            config.ini  (目前处理驱动和网站地址等)--书架功能
                setting.py(处理文件常量和路径拼接) --服务于testcase文件夹

     tools(驱动文件夹)   拉起驱动时有这个不用配置环境变量了,给别人立即给用。
              chromedriver.exe
              geckodriver.exe

     test_log(预留的日志文件夹)

     screen(预留的截图文件夹)

     test_case(业务代码测试用例)
        init.py
        testLogin.py (第一个测试用例文件,名字先自己取)

     test_data(数据驱动文件夹)
       init.py
          data.xlsx(核心配置)
           browser.yaml (配置测试信息)

 run.py -入口函数 把testcase文件夹套件化处理(testsuite)

流程路径
util\\Base基础  -->    util\\common    -->   test_case\\业务代码 -->  run.py 启动(现在是第一层)
util(处理封装webdriver,日志,报告等)  -->  testcase\\业务代码(test开头*.py)