因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的《selenium +  python自动化测试》一书。

在与测试用例文件夹同一目录下新建一个文件夹package,用来放置封装方法的模块文件

我们将webdriver二次封装的文件命名为location.py

from selenium import webdriver
from test_case.public import login                   #login文件中的driver传入#定位一个元素
def findId(driver,Id):f = driver.find_element_by_id(Id)return fdef findName(driver,Name):f = driver.find_element_by_name(Name)return fdef findClassName(driver,ClassName):f = driver.find_element_by_class_name(ClassName)return fdef findTagName(driver,TagName):f = driver.find_element_by_tag_name(TagName)return fdef findCss(driver,Css):f = driver.find_element_by_css_selector(Css)return fdef findLinkText(driver,LinkText):f = driver.find_element_by_link_text(LinkText)return fdef findPLinkText(driver,PLinkText):f = driver.find_element_by_partial_Link_text(PLinkText)return fdef findxPath(driver,xPath):f = driver.find_element_by_xpath(xPath)return f#定位一组元素def findsId(driver,Id):f = driver.find_elements_by_id(Id)return fdef findsName(driver,Name):f = driver.find_elements_by_name(Name)return fdef findsClassName(driver,ClassName):f = driver.find_elements_by_class_name(ClassName)return fdef findsTagName(driver,TagName):f = driver.find_elements_by_tag_name(TagName)return fdef findsCss(driver,Css):f = driver.find_elements_by_css_selector(Css)return fdef findsLinkText(driver,LinkText):f = driver.find_elements_by_link_text(LinkText)return fdef findsPLinkText(driver,PLinkText):f = driver.find_elements_by_partial_link_text(PLinkText)return fdef findsxPath(driver,xPath):f = driver.find_elements_by_xpath(xPath)return f

在其他需要用到定位方法的文件中将模块导入,且将文件所在的文件路径加入sys.path路径集中便可引用

#实现webdriver二次封装
from package import location
sys.path.append("D:\\fcj\\study\\seleniumtest\\package")
l = location

之后使用的定位方法则变成以下简洁写法:

例如:find_element_by_id()的方法

l.findId(driver,"id")

转载于:https://www.cnblogs.com/evablogs/p/7269956.html

selenium + python自动化测试unittest框架学习(五)webdriver的二次封装相关推荐

  1. selenium + python自动化测试unittest框架学习(二)

    1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...

  2. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  3. selenium原理python_selenium + python自动化测试unittest框架学习(一)selenium原理及应用...

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  4. 自动化测试——unittest框架

    自动化测试--unittest框架 文章目录 自动化测试--unittest框架 unittest 一.TestCase(测试用例) 二.TestSuite(测试套件)和TestRunner(测试执行 ...

  5. selenium +python自动化测试发QQ空间说说

    selenium +python自动化测试发QQ空间说说 import time from selenium import webdriver# 1. 打开网站,窗口最大化 driver=webdri ...

  6. selenium + python自动化测试环境搭建

    elenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: 免费,也不用再为破解QTP而大伤脑筋 小巧,对于不同的语言它只是一个包 ...

  7. PyTorch框架学习五——图像预处理transforms(一)

    PyTorch框架学习五--图像预处理transforms(一) 一.transforms运行机制 二.transforms的具体方法 1.裁剪 (1)随机裁剪:transforms.RandomCr ...

  8. selenium自动化测试、Python单元测试unittest框架以及测试报告和日志输出

    部分内容来自:https://www.cnblogs.com/klb561/p/8858122.html 一.基础介绍 核心概念:test case, testsuite, TestLoder,Tex ...

  9. 自动化测试unittest框架

    目录 本章目标 unittest框架解析 新窗口,无法定位元素 批量执行脚本 - `addTest()` 构造测试套件 makeSuite()和TestLoader的应用 discover()的引用 ...

最新文章

  1. 机器学习PAL数据可视化
  2. pandas使用read_csv函数读取文件并解析日期数据列(parse dates)、pandas使用read_csv函数读取文件并将缺失值转化为空字符串
  3. 删除链表中全部值为k的节点
  4. Machine Learning week 5 quiz: programming assignment-Multi-Neural Network Learning
  5. 数据中心机房冷热通道优化设计经验谈
  6. 处理字符串_13_按照指定的分隔符截取字符返回表形式
  7. centos09-nodejs与vue搭建
  8. 面向服务的分析与设计原理
  9. 华为的鸿蒙系统是海思_死心了!华为鸿蒙系统首款终端确认,不是手机
  10. 华为Mate X国行售价曝光,5G网速实测,强悍!
  11. java 继承特点_java 继承特点
  12. 如何批量新建文件夹并命名
  13. vb6.0动态加载odbc驱动(mysql数据源)_vb教程之在VB中动态加载ODBC数据源
  14. centos安装stress安装失败_Linux压力测试工具stress
  15. 关于selenium配置Chrome驱动(Windows系统)
  16. MFC无边框窗体设置窗口圆角,并且绘制边框
  17. 什么是现汇买入价、现钞买入价、卖…
  18. go down to用法
  19. 干货 :7招帮你打造完美数据科学GitHub作品集!
  20. 银行可视化大屏后端计算案例

热门文章

  1. LeetCode 78. 子集
  2. oracle: to_char,to_date
  3. PLSQL重点问题理解和实战
  4. Linux 下安装和配置TSM 7.1
  5. linux yum源安装
  6. bootstrap的验证和确认对话框
  7. [笔试面试][code_by_hand]输出第二个字符串在第一个字符串中的连接次序
  8. 关于rc.local启动程序
  9. Linq to sql查询句法
  10. linux不断安装操作系统,无人值守批量安装linux操作系统