logo资料库

selenium webdriver基于python源码案例.docx

第1页 / 共254页
第2页 / 共254页
第3页 / 共254页
第4页 / 共254页
第5页 / 共254页
第6页 / 共254页
第7页 / 共254页
第8页 / 共254页
资料共254页,剩余部分请下载后查看
1.1 windows环境搭建
1.1.1 selenium简介
1.1.2 python安装
1.1.3 环境变量
1.1.4 安装selenium
1.1.5 验证selenium
1.1.6 浏览器
1.1.7 firefox历史版本
1.2 pip降级selenium3.0
1.2.1 遇到问题
1.2.2 解决方案
1.2.3 检查pip环境
1.2.4 pip查看selenium版本号
1.2.5 pip降级selenium
1.2.6 升级pip版本
1.3 解决pip异常问题
1.3.1 pip出现异常
1.3.2 解决办法
1.3.3 配置环境变量
1.3.4 必杀技
1.3.5 绝杀技能
1.4 Chrome浏览器
1.4.1 Chrome遇到问题
1.4.2 查看版本号
 1.4.3 chromedriver
 1.4.4 各版本匹配表
1.5 pycharm使用
1.5.1 pycharm安装
1.5.2 新建工程
1.5.3 新建脚本
 1.5.4 开始编程
1.6 selenium3+firefox环境搭建
1.7 mac上搭建selenium环境
1.8 pycharm上两种运行姿势
第二章 WebDriver API
2.1 操作浏览器基本方法
2.1.1 打开网页
2.1.2 设置休眠
2.1.3 页面刷新
2.1.4 页面切换
2.1.5 设置窗口大小
2.1.6 截屏
2.1.7 退出
2.1.8 加载浏览器配置
2.2 常用8种元素定位(Firebug和firepath)
2.2.1 环境准备
2.2.2 查看页面元素:
2.2.3 find_element_by_id()
2.2.4 find_element_by_name()
2.2.5 find_element_by_class_name()
2.2.6 find_element_by_tag_name()
2.2.7 find_element_by_link_text()
2.2.8 find_element_by_partial_link_text()
2.2.9 find_element_by_xpath()
2.2.10 find_element_by_css_selector()
2.3 xpath定位
2.3.1 xpath:属性定位
2.3.2 xpath:其它属性
2.3.3 xpath:标签
2.3.4 xpath:层级
2.3.5 xpath:索引
2.3.6 xpath:逻辑运算
2.3.7 xpath:模糊匹配
2.4 CSS定位
2.4.1 css:属性定位
2.4.2 css:其它属性
2.4.3 css:标签
2.4.4 css:层级关系
2.4.5 css:索引
2.4.6 css:逻辑运算
2.4.7 css:模糊匹配
2.5 SeleniumBuilder辅助定位元素
2.5.1 安装Selenium Builder
2.5.2 直接运用
2.5.3 实践案例
2.6 操作元素(键盘和鼠标事件)
2.6.1 简单操作
2.6.2 submit提交表单
2.6.3 键盘操作
2.6.4 鼠标悬停事件
2.7 多窗口、句柄(handle)
2.8 定位一组元素elements
2.9 iframe
2.10 select下拉框
2.11 alert\confirm\prompt
2.12 单选框和复选框(radiobox、checkbox)
2.13 table表格定位
2.14 加载Firefox配置
2.14-1 加载Chrome配置
一、加载Chrome配置
二、Wap测试
2.15 富文本(richtext)
一、加载配置
二、打开编辑界面
三、iframe切换
四、输入正文
2.16-1 非input文件上传(SendKeys)
一、SendKeys安装
二、参考代码
2.16 文件上传(send_keys)
一、识别上传按钮
二、定位iframe
2.17 获取元素属性
一、获取页面title
二、获取元素的文本
三、获取元素的标签
四、获取元素的其它属性
五、获取输入框内的文本值
六、获取浏览器名称
七、参考代码
2.18 爬页面源码(page_source)
一、page_source
二、re非贪婪模式
三、筛选url地址出来
四、参考代码
2.19 cookie相关操作
一、获取cookies:get_cookies()
二、登录后的cookies
三、获取指定name的cookie:driver.get_cookie(name)
四、清除指定cookie:delete_cookie()
五、清除所有cookies:delete_all_cookies()
六、cookie操作的几个方法
七、参考代码
2.20 绕过验证码(add_cookie)
一、fiddler抓包
二、添加cookie方法:driver.add_cookie()
三、cookie组成结构
四、添加cookie
五、参考代码:
2.21 JS处理滚动条
一、JavaScript简介
二、控制滚动条高度
三、横向滚动条
四、Chrome浏览器
五、元素聚焦
六、获取浏览器名称:driver.name
七、兼容性
八、scrollTo函数
九、参考代码如下:
2.22 JS处理富文本
一、加载配置
二、打开编辑界面
三、定位iframe
四、js输入中文
五、参考代码
2.23 js处理日历控件(修改readonly属性)
一、日历控件
二、去掉readonly属性
三、用js去掉readonly属性
四 输入日期
五、js方法输入日期
六、参考代码
2.24 js处理内嵌div滚动条
一、内嵌滚动条
二、纵向滚动
三、横向滚动
四、用class属性定位
2.25 js处理多窗口
一、多窗口情况
二、查看元素属性:target="_blank"
三、去掉target="_blank"属性
四、js去掉target="_blank"属性
五、参考代码
2.26 js解决click失效问题 
一、遇到的问题
二、点击父元素
三、js直接点击
四、参考代码
2.27 18种定位方法总结
一、十八种定位方法
二、element和elements傻傻分不清
三、elements定位方法
四、参考代码
2.28 查看webdriver API(带翻译)
一、pydoc
二、启动server
三、浏览器查看文档
四、webdriver API
2.29 练习题1:去掉页面动态窗
一、alert弹窗 
2.30 练习题2:定位百度-更多产品
2.31 练习题3:获取百度联系词
一、定位输入框联想词
二、打印全部匹配出来的词
三、参考代码
2.32 js几种定位方法总结
一、以下总结了5种js定位的方法
二、id定位
三、class定位
四、CSS选择器
五、参考代码:
2.33 定位的坑:class属性有空格
一、定位带空格的class属性
二、class属性科普
三、class定位
四、判断元素唯一性
五、class属性不唯一怎么办
六、css定位
七、参考代码
2.34 jquery定位(简直逆天)
一、jquery搜索元素
二、jquery定位语法
三、jquery行为
四、参考脚本
第三章 unittest介绍
3.1 unittest简介
3.1.2 简单用法
3.1.3 小试牛刀
3.1.4 前置和后置
3.1.5 博客案例
3.2 unittest执行顺序
一、案例分析
二、执行结果
三、结果分析
四、selenium实例
3.3 unittest批量执行
一、新建测试项目
二、diascover加载测试用例
三、run测试用例
3.4 unittest之装饰器(@classmethod)
一、装饰器
二、执行顺序
三、selenium实例
3.5 unittest生成测试报告HTMLTestRunner
一、导入HTMLTestRunner
二、demo解析
三、生成html报告
四、测试报告详情
五、参考代码:
3.6 html报告乱码问题优化
一、中文乱码
二、修改编码
3.7 unittest之断言
3.7.1 简单案例
3.7.2 自定义异常
3.7.3 unittest常用的断言方法
3.7.4 unittest所有断言方法
3.8 搭建简易项目
一、新建工程
二、项目结构
三、run_main
3.8-1 生成报告的源码下载(兼容python2和3)
3.9 run_main.py源码(兼容python2和3)
3.10 练习题1:模块导入(登录方法)
一、登录方法封装
3.11 练习题2:捕获异常
一、发生异常
二、捕获异常
三、参考代码:
四、selenium常见异常
3.12 练习题3:异常后截图
一、截图方法
二、异常后截图
三、selenium实例
3.13 练习题4:邮件发送(smtp)
一、163邮箱
二、QQ邮件
三、兼容163和QQ邮箱
四、发送带附件
五、发给多个收件人
六:邮件收不到的几种原因:
3.14 unittest之skip
一、skip装饰器
二、skip案例
3.15 报告优化:带截图、饼图、失败重跑
一、 优化html报告
二、 报告效果
三、 异常截图
五、 执行用例
3.16 github源码下载
第四章 场景判断与封装
第4章 场景判断192
4.1 显示等待WebDriverWait
一、参数解释
二、元素出现:until()
三、元素消失:until_not()
四、参考代码:
五、WebDriverWait源码
4.2 定位方法参数化find_element()
一、find_element()
二、查看find_element方法源码
三、By定位方法
四、定位参数化
五、参考代码
4.3 参数化登录方法
一、登录方法
二、用例
三、判断方法封装
四、优化后案例
五、参考代码
4.4 封装读取excel方法
一、环境准备
二、基本操作
三、excel存放数据
四、封装读取方法
4.5 数据驱动ddt
一、环境准备
二、数据驱动原理
三、selenium案例
4.6 判断元素16种方法expected_conditions
一、功能介绍和翻译
二、查看源码和注释
4.7 判断title方法title_is
一、源码分析
二、判断title:title_is()
四、参考代码
4.8 判断文本text_to_be_present_in_element
一、源码分析
二、判断文本
三、失败案例
四、判断value的方法
4.9 判断弹出框alert_is_present
一、判断alert源码分析
二、实例操作
三、参考代码
4.10 二次封装(click/sendkeys)
一、显示等待
二、封装定位方法
三、封装成类
三、封装成类
四、参考代码
4.11 二次封装(完整版)
4.12 PageObject
一、PageObect
二、定位方法对应参照表
三、参考代码如下
第一章 环境搭建 第 1 章 环境搭建 1.1 环境搭建 1.1.1 selenium 简介 1.1.2 python 安装 1.1.3 环境变量 1.1.4 安装 selenium 1.1.5 验证 selenium 1.1.6 浏览器 1.2 pip 降级 selenium3.0 1.2.1 遇到问题 1.2.2 解决方案 1.2.3 检查 pip 环境 1.2.4 pip 查看 selenium 版本号 1.2.5 pip 降级 selenium 1.2.6 升级 pip 版本 1.3 解决 pip 使用异常 1.3.1 pip 出现异常 1.3.2 解决办法 1.3.3 配置环境变量 1.4 Chrome 浏览器(chromedriver) 1.4.1 Chrome 遇到问题 1.4.2 查看版本号 1.4.3 chromedriver 1.4.4 各版本匹配表 1.5 Pycharm 使用 1.5.1 pycharm 安装 1.5.2 新建工程 1.5.3 新建脚本 1.5.4 开始编程 1.1 windows 环境搭建 1.1.1 selenium 简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端 功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多 个浏览器中执行这些测试。 Selenium 的发展经历了三个阶段,第一个阶段,也就是 selenium1 的时代,在运行 selenium1.0 程序之前,我们得先启动 selenium server 端(selenium remote control),我们简称 RC。RC 主 要包括三个部
分:launcher,http proxy,selenium core。其中 selenium core 是被 selenium server 嵌入到浏 览器页面中的,selenium core 内部是一堆 javascript 函数构成,通过调用这些函数来实现对 浏览器的各种操作。 很显然比较繁琐,这并不是最佳自动化解决方案,于是后来有了 webdriver。 selenium2 的时代合并了 webdriver,也就是我们通常说的 selenium,selenium2 是默认支持 Firefox 浏览器的,这点非常方便。当然也支持其他更多浏览器,Ie 和 chrome 浏览器需要下 载驱动包,并添加到环境变量下 selenium3 是 2016 年十月份左右出来的,并且现在默认安装都是 selenium3 了,selenium3 在 selenium2 的基础上做了一些调整,最明显的区别 就是 selenium2 对 Firefox 的支持最高 只支持 46 及以下版本。selenium3 可以支持 47 以上版本,但是需要下载 geckodriver.exe 驱 动,并添加到环境变量 path 下。 接下来的内容以 selenium2 为主 ************环境组合************************** 初学者最佳环境:python2.7+selenium2+Firefox46 以下版本 喜欢尝新的环境:python3.6+selenium3+Firefox47 以上版本 ********************************************* 小编的环境: windows10 64 位 python 2.7.12 selenium 2.53.6 firefox 44 1.1.2 python 安装 1.小编的电脑操作系统:win10 64 位系统 2.下载 Python 安装包,选择 2.7 版本和 3.6 版本都可以(下面的教程,两个版本会一起讲, 所以不用担心版本问题) 官网下载地址:https://www.python.org/57 3.Python 安装,双击傻瓜式安装(别安装在 c 盘,用英文路径,不要有空格),安装时候选
中下方红色框框,如果这一步成功,1.1.3 环境变量这一步可以省略 1.1.3 环境变量 1.安装完成后,看下这个目录 D:\python\Scripts,有没 pip.exe 和 easy_install.exe(一般都有, 没有的话得卸载重新安装一次了)
2.将 D:\python 和 D:\python\Scripts(注意这两个是复制自己电脑上的路径),添加到环境变 量 path 下 D:\python;D:\python\Scripts;(英文的分号)
1.1.4 安装 selenium 1.打开 cmd 窗口输入:pip (如果出现其它提示请检查上面几步,确认无误后出现 Did not provide a command,看 1.3 解 决 pip 异常这篇) 2.cmd 输入指令安装在线安装 selenium >pip install selenium==2.53.6 (注意:首次装一定要看到进度 100%完成,如果中途失败了,重新输入指令安装,直到看到 100%完成为止) 1.1.5 验证 selenium 如何才能知道 selenium 正确安装好了呢?
1.确保电脑上安装了 Firefox 浏览器 46 以下版本 cmd 窗口输入如下指令 >python >from selenium import webdriver >webdriver.Firefox() 3.如果能启动浏览器,说明环境安装 OK。 (启动不成功,说明没认真看文档,卸载了重新来一次) 1.1.6 浏览器 1.如果你打算用 Firefox 浏览器,那么千万别安装 47 以上版本(selenium2 不兼容 47 以上) 2.如果你打算用 Ie 或 Chrome 浏览器,需要先下载浏览器驱动,将驱动文件放到 python 根 目录。 如果有的已经安装过 3.0 的版本,启动 firefox 时候会报错,下一章讲如何使用 pip 降级 selenium 版本。 1.1.7 firefox 历史版本 firefox 历年版本的官方镜像地址: https://download-installer.cdn.mozilla.net/pub/firefox/releases/ 1.2 pip 降级 selenium3.0 selenium 版本安装后启动 Firefox 出现异常:'geckodriver' executable needs to be in PATH selenium 默默的升级到了 3.0,然而网上的教程都是基于 selenium2 的,最近有不少小伙伴 踩坑了,决定有必要出这一篇,帮助刚入门的小伙伴们解决好环境问题。
selenium+python 环境搭配: selenium2+firefox46 以下版本(无需驱动包,firefox 喜欢偷偷升级,你懂的) selenium3+firefox46 以上版本(必须下载驱动:geckodriver.exe,且添加到环境变量) 1.2.1 遇到问题 1.安装完 selenium 后,再 cmd 进入 python 环境 2.从 selenium 导入 webdriver 3.启动 Firefox 浏览器 >>python >>from selenium import webdriver >>webdriver.Firefox() 然后出现以下异常:'geckodriver' executable needs to be in PATH 1.2.2 解决方案 1.'geckodriver' executable needs to be inPATH,这句话意思就是说,geckodriver.exe 的驱 动文件需要添加到环境变量下, selenium2 是默认支持 firefox 的,不需要驱动包,但是,selenium3 需要驱动包的支持了, 于是就有了上面的问题 2.解决办法一:继续使用 selenium3,去下载驱动包,然后加到环境变量下(不推荐此办 法,因为解决完这个问题后,后面还会接着有其它问题) 3.解决办法二:selenium3 降级到 selenium2(接下来会介绍) 1.2.3 检查 pip 环境 1.打开 cmd,输入 pip,检查 pip 环境是否正常 >>pip
2.如果输入 pip 出现提示:Did not provide a command 说明 pip 环境有问题,临时解决办法, 输入 pip 时候加上后缀 pip.exe 就可以了,具体原因看下一篇解决办法。 1.2.4 pip 查看 selenium 版本号 1.打开 cmd,输入 pip show selenium >>pip show selenium 2.看红色区域位置版本号显示:2.53.0,显示的就是当前使用的版本号 (如果你这里显示的是 3.0 开头,就需要接下来步骤了) 1.2.5 pip 降级 selenium 1. 为 了 避 免 与 之 前 安 装 的 selenium 版 本 冲 突 , 先 找 到 selenium3.0 目 录 : python\Lib\site-packages 目录 把里面 selenium 开头的文件全部删除就可以了。python 所有的第三方包都在这个目录下 面。
分享到:
收藏