【selenium学习 -2】一个基本的测试流程的例子
时间:2020-05-13
本文章向大家介绍【selenium学习 -2】一个基本的测试流程的例子,主要包括【selenium学习 -2】一个基本的测试流程的例子使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近想好好写写博客,就继续以前关于web自动化的写,希望能写成一个系列
今天的这个例子,就是一个简单的百度搜索,并验证搜索后网页Title的用例(使用chrome示例)
webdriver在驱动浏览器时,需要下载对应的驱动,注意需要和自己所使用的浏览器版本相匹配
Chrome下载 chromedriver.exe 下载地址 http://chromedriver.storage.googleapis.com/index.html
Firefox 下载 geckodriver.exe 下载地址 https://github.com/mozilla/geckodriver/releases/
IE 下载 IE Driver 下载地址 https://www.nuget.org/packages/Selenium.WebDriver.IEDriver/
from selenium import webdriver import time class test01(): def __init__(self): # 1.强制指定driver路径 # chrome_driver = r"/path/to/chromedriver" # self.driver = webdriver.Chrome(executable_path=chrome_driver) # 2.将driver路径放置进环境变量中,就可以直接使用 self.driver = webdriver.Chrome() self.driver.maximize_window() # 最大化窗口 self.driver.get("https://www.baidu.com/") def input_text(self): self.driver.find_element_by_name("wd").send_keys("双J版稻香") self.driver.find_element_by_id("su").click() time.sleep(3) # 添加等待时间,等待网页反应过来 # 获取网页title def get_title(self): return self.driver.title # 关闭浏览器窗口并结束drive进程 def close(self): self.driver.quit() if __name__ == '__main__': bd = test01() bd.input_text() title = bd.get_title() assert title == '双J版稻香_百度搜索' # 做断言 bd.close()
需要注意的几个点:
1.driver的路径,一种方式是强制指定路径,二种方法是放入环境变量中,可直接使用
2.因为脚本的速度很快,有时网页的速度跟不上,所以需要添加一些等待时间,以避免找不到元素等问题,在什么地方添加,根据脚本而定
3.UI自动化的基本流程就是,打开浏览器 - 定位元素 - 操作 - 断言,我感觉更多的难点是定位元素,和做合适的断言,这些后面再慢慢讲
原文地址:https://www.cnblogs.com/ronyjay/p/12881882.html
- 消灭假新闻:使用Scikit-Learn检测虚假新闻
- WPF 跳动的文字
- Sql批量修改帝国cms文章发布时间(需unix时间,否则会变为1970-01-01)
- socket 通信 多线程调用窗体(委托)的几个知识点,记录在案,以备查阅
- 微信公众平台改版 终于支持图文消息链接了
- 机器学习黑客系列:模型比较与选择
- asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
- 用A标签实现页面内容定位 点击链接跳到具体位置
- Seq2seq模型的一个变种网络:Pointer Network的简单介绍
- 框架设计原则和规范(三)
- 微信推广功能支持图片广告和投放外链广告
- PHP 高级编程之多线程
- 框架设计原则和规范(四)
- python 函数参数的传递(参数带星号的说明)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Vue监听返回键关闭弹出层不返回页面
- Css添加div点击态
- Mybatis源码笔记之浅析ParameterHandler
- SpringBoot总结之浅析自动化配置原理
- Vue用keep-alive实现页面缓存
- Mybatis源码笔记之浅析StatementHandler
- Spring之事务传播行为
- Js处理异步async,await
- Vue_Cli4.x使用px2rem + vant搭建移动端项目
- Html新特性contenteditable自定义富文本
- 如何优雅的处理Restful
- 微信SDK实现多张图片上传
- JsBase64位转换为blob上传到服务器
- 微信小程序可移动浮窗
- Vant实现省市区三级联动