selenium + python自动化测试unittest框架学习(六)分页
接触的项目分页的形式是以下形式:
想要获取总页数后,遍历执行翻页的功能,但由于分页是以javascript方法实现的,每次点击确定按钮后,页面就回刷新,webelement元素过期无法遍历下一个进行翻页操作,报StaleElementReferenceException的错误,所以对于这个操作折腾了半天还是放弃了。
对于分页的操作实现了以下功能:
(1)获取总页数并输出
(2)遍历操作‘上一页’,‘下一页’按钮,实现翻页功能
(3)在输入页数的文本框中输入页数,点击确定,实现翻页功能
def page():
driver = login.driver
#获取总页数
l.findId(driver,"laypageid")
total_pages = len(l.findsCss(driver,"a[href='javascript:;']"))
print("total_pages is %s" %(total_pages))
#点击下一页
for i in range(total_pages-1):
l.findClassName(driver,"next").click() #next:下一页的class name
time.sleep(2) #点击上一页
for i in range(total_pages-1):
l.findClassName(driver,"prev").click() #prev:上一页的class name
time.sleep(2) #翻页输入框中输入页数点击
for i in range(1,total_pages+1):
l.findClassName(driver,"textboxid").send_keys(i)
l.findClassName(driver,"laypage_btn").click()
time.sleep(2)
以上的代码并不算是实现了翻页的功能,仅仅是为了记录下在翻页功能的实现上遇到的困难,以便后期重新捡起修改。
selenium + python自动化测试unittest框架学习(六)分页的更多相关文章
- selenium + python自动化测试unittest框架学习(二)
1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...
- selenium + python自动化测试unittest框架学习(一)selenium原理及应用
unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...
- selenium + python自动化测试unittest框架学习(五)webdriver的二次封装
因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<se ...
- selenium + python自动化测试unittest框架学习(七)随机生成姓名
在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机 ...
- selenium + python自动化测试unittest框架学习(三)webdriver元素定位(一)
1.Webdriver原理 webdirver是一款web自动化操作工具,为浏览器提供统一的webdriver接口,由client也就是我们的测试脚本提交请求,remote server浏览器进行响应 ...
- selenium + python自动化测试unittest框架学习(四)python导入模块及包知识点
在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个mo ...
- selenium + python自动化测试unittest框架学习(三)webdriver元素操作(二)
上一篇是元素的定位,那么定位元素的目的就是对元素进行操作,例如写入文本,点击按钮,拖动等等的操作 (1)简单元素操作 简单元素操作 find_element_by_id("kw") ...
- selenium + python自动化测试unittest框架学习(三)webdriver对页面其他控件操作(三)
1.对话框,下拉框 (1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话 ...
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
随机推荐
- javascript数组元素全排列
多个数组(数量不定)例如三个数组 {a,b} {1,2} {d}排列组合后为a,1,da,2,db,1,db,2,d是js的算法哦 var arr = [["a","b& ...
- react 使用map 的时候提示 没有返回值
因为map 的函数体里 用了if判断,在if块之外return 一个值就可以了 <div className="service-entry"> {!!services ...
- C# xml通过xslt转换为html输出
html效果截图: 1.首先分析html代码结构: 结果如图: 2.调用接口返回的数据格式: 3.由第一步可看出每2个数据为一行并排显示,后台返回的数据总数可能为奇数个或偶数个,对应该生成的xml结构 ...
- 使用 RamMap 清理内存 How to Use RamMap to Empty System Working Set
使用 RamMap 清理内存 In this post I want to introduce RamMap by Microsoft. It’s a free tool you can use to ...
- 以local模式使用Xshell+Xmanager远程监控jvisualvm
使用jvisualvm的remote方式监控服务器端jvisualvm时,不是很方便,因此通过local方式,应该是正路. 一.服务器端(Linux,最小安装模式,没有图形界面) 1.安装xauth ...
- windows下建立netcore控制台程序,然后传送到centos7下的docker容器里运行
1.首先,在window下用vs2017开发netcore控制台项目. 2.把建立好的项目传送到centos7下面的容器里. docker cp sharefoldersforwindows/ 359 ...
- C#的Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。语法如下:
形参列表=>函数体 函数体多于一条语句的可用大括号括起. 类型 可以将此表达式分配给委托类型,如下所示: delegate int del(int i); del myDelegate = ...
- python基础_类型_list
#list 类似数组array,以[]扩起来逗号分隔 a = ['a','b','c'] #常用函数 a.append('c') #在list最后增加一个元素,结果是['a','b','c','c'] ...
- [翻译] CHTCollectionViewWaterfallLayout
CHTCollectionViewWaterfallLayout https://github.com/chiahsien/CHTCollectionViewWaterfallLayout CHTCo ...
- python3 django1.10 使用mysql服务器
python3中使用mysql报错ModuleNotFoundError: No module named 'MySQLdb' 原因是:在python2.x中用mysqldb,但是在python3.x ...