录制:
1、打开火狐浏览器,点击添加组件
2、点击拓展,然后搜索栏里输入selenium IDE
3、下载第一个,
4、点击添加按钮,会出现下面的弹框,点击添加
5、添加成功后,会出现一个窗口
6、点击selenium IDE,会出现下面的窗口,点击第三个,创建一个文件名
7、创建完成会自动弹出一个窗口,然后点击右上角的录制
8、点击录制输入要录制的网址
9、开始录制的话,右下角会出现
10、暂停就在点一下上图右下角的位置,然后点击要导出的文件
11、选择想要导出的格式
12、我用python pytest导出的,然后将导出的文件拖入到pycharm里,就可以自动生成代码
14、在设置里下载pytest
然后点击添加
搜索pytest,点击左下角的install package,下载完成如下图所示:
然后运行你的代码就可以了
测试报告:
pycharm+selenium+unittest+HTMLTestRunner
先把HTMLTestRunner放到C盘python下
在代码里把HTMLTestRunner、unittest、selenium导入
然后写一个函数,函数的命名方式必须是以Test开头的
然后初始化:
编写一个测试用例,代码如下:
生成测试报告的代码:
然后生成的测试报告可以再你创建的文件目录里找到
注:显示等待、隐式等待和强制等待的区别
在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait()、隐式等待implicitly_wait()、强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别
sleep(): 强制等待,设置固定休眠时间。后脚本的执行过程中执行 sleep()后线程休眠,而另外两种线程不休眠。
implicitly_wait():隐式等待,是设置的全局等待。设置等待时间,是对页面中的所有元素设置加载时间,如果超出了设置时间的则抛出异常。隐式等待可以理解成在规定的时间范围内,浏览器在不停的刷新页面,直到找到相关元素或者时间结束。
WebDriverWait():显示等待,是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException。
WebDriverWait() 语法格式如下:
WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None).until(self,method,message=)
或者
WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None).until_not(self,method,message=)
self, 函数本身,在实际使用的时候不需要输入
driver, webdriver的驱动程序,如(IE、FireFox、chrome、safari等)
timeout,超时时间,默认以秒为单位
poll_frequency,休眠时间(步长)的间隔,默认为0.5秒,即检测元素是否存在的频率
ignored_exceptions, 超时后的异常信息,默认情况下抛 “NoSuchElementException",大家可以定义忽略的异常信息
WebDriverWait一般由until或until_not配合使用
until(method,message=")调用该方法提供的驱动程序做为一个参数,直到返回值不为False
until_not(method,message=")调用该方法提供的驱动程序做为一个参数,直到返回值为False