selenium+python自动化用例登陆界面模板
一、基本逻辑
1.自动填写用户名和密码登录成功后跳转到相应页面
2.验证相应页面的url与给定的url是否一致,如果一致则测试通过,如果不一致则不通过
二、以jenkins登陆界面为例,代码如下
from selenium import webdriver
import unittest
from selenium.webdriver.support.wait import WebDriverWait class TestLogin(unittest.TestCase):
# 指定浏览器
def setUp(self):
self.driver = webdriver.Firefox(executable_path="F:\Program Files (x86)\Mozilla Firefox\geckodriver.exe")
# 打开url
self.driver.get("http://192.168.1.151:8080/login?from=%2F") # 登录操作
def test_login(self):
username = "test001"
password = "pass001" # 执行登录操作
#用户名的定位
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).clear()
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).send_keys(username)
#密码的定位
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_name('j_password')).clear()
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_name('j_password')).send_keys(password)
# 点击登录
self.driver.find_element_by_id("yui-gen1-button").click()
# 登录成功断言
currUrl = self.driver.current_url
print("currUrl"+currUrl)
if currUrl == "http://192.168.1.151:8080/":
print("success")
else:
print("failure") # 关闭浏览器
def tearDown(self):
self.driver.quit() if __name__ == "__main__":
unittest.main()
三、用例详解
用例主要分为3块:
def setUp(self):函数setUp中,为执行用例前准备操作
def test_login(self):函数test_login中,为用例的具体操作步骤+用例执行后的断言判断操作
def tearDown(self):函数tearDown中,为用例执行完成的还原环境操作 值得一讲的为用户名的定位语句:
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).clear() //找到用户名的值,把值清空
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).send_keys(username) //将username的值写入用户名值中 WebDriverWait:10秒钟内每隔0.5秒去页面找id=j_username属性的值,超过10秒则报错,有效的避免了页面加载延迟导致找不到对应值的bug find_element_by_id:表示通过id属性去找(鼠标放在用户名框的位置-->右键-->属性),如下图:
四、执行结果
由于此处设置的用户名,密码无效,故返回失败,如下图:(在执行过程中可以看到在火狐中有打开浏览器的一系列操作)
五、用例调试
可以通过在pycharm中进入Python Console中一句一句的执行用例语句,进行用例调试并查看用例每一步操作现象
selenium+python自动化用例登陆界面模板的更多相关文章
- python自动化用例框架搭建--目录结构规划
目录结构搭建 Test_framework |--config(配置文件) |--data(数据文件) |--drivers(驱动) |--log(日志) |--report(测试报告) |--tes ...
- 2020,8种必备Selenium编写自动化用例的技巧
在开始自动化时,您可能会遇到各种可能包含在自动化代码中的方法,技术,框架和工具.有时,与提供更好的灵活性或解决问题的更好方法相比,这种多功能性导致代码更加复杂.在编写自动化代码时,重要的是我们能够清楚 ...
- 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例
查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...
- python+requests+yaml实现接口自动化用例
前言:最近也思考了一下怎么做接口自动化,以下内容属于自己目前阶段所学习到的内容,也逐渐投入自己实际工作中,把最近的学习新得跟大家分享下,话不多说,切入正题. 对接口自动化测试用例的思考:接口测试大多测 ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- Android UI自动化用例设计技巧
一.封装方法 1.编程如何越来越快: 首先,需要经验丰富,知识面广. 其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题.各种通用的方法函数. 同理,自动化脚本也是编程,测试用例则为需求,U ...
- 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例
背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...
- 【UI】自动化用例设计技巧
需要封装的方法: 公共的操作方法 经常使用的步骤:超过两次以上 经常使用的组件:输入框.文本框.列表 经常操作的布局:多个组件组成通用的布局 经常操作的页面:ui页面由一个一个单独Activity组成 ...
- pytest文档30-功能用例与自动化用例完美对接(allure)
前言 做自动化做久了,经常会思考一个问题,到底别人是怎么做的自动化,跟自己的有啥不一样,看过不少书和资料,都是停留在demo的层面. 真正把自动化做的好的大牛又不屑于分享自己的劳动成果,所以大部分情况 ...
随机推荐
- python vs java Threadpool
python 实现threadpool线程池管理: from concurrent.futures import ThreadPoolExecutor as te from concurrent.fu ...
- MySQL主键设计盘点
目录 主键定义 主键设计和应用原则 主键生成策略 自增ID UUID 自建的id生成器 Twitter的snowflake算法 @ 最近在项目中用了UUID的方式生成主键,一开始只是想把这种UUID的 ...
- JUC-线程间通信
面试题: 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z, 要求用线程间通信 线程间通信:1.生产者+消费者2.通知等待唤醒机制 多线程编程模版中 1.判断 ...
- Ansible:playbook-nagios
一.创建目录结构 cd /etc/ansible/roles/ mkdir nagios/{files,templates,vars,handlers,meta,default,tasks} -pv ...
- 读书笔记 (.NET企业级应用架构设计)
建议你自己和别人多沟通(学会沟通会使你在公司更好的发展,有意见就提,有问题就问,有困难就说)加油lxp 1.架构师是用来干嘛的: 架构师分析需求,分析系统要去做什么,架构怎么去做 2.架构师的职责是: ...
- ORA_12514:TNS:listener does not currently know of service requested in connect descriptor
问题描述 ORA_12514:TNS:listener does not currently know of service requested in connect descriptor 解决方式 ...
- python面试的100题(6)
7.请反转字符串 "aStr"? print("aStr"[::-1]) python实现字符串反转 第一种:使用字符串切片 result = s[::-1] ...
- Explainable ML
定义: 不仅可以(分类),还要输出分类的理由是什么(局部),以及某一个分类的判断标准(全局) 局部: silence map. 把{x1.....xn}中每一个像素加一个偏移量之后,得到的y偏移量与x ...
- 在Linux服务器上安装Python3.7
我的Linux版本是CentOS 6,自带2.7版本的Python.源码安装和系统中默认存在的Python不冲突. 1.在Python官网下载源码包,进入官网https://www.python.or ...
- http断点续传的原理
——————————————先讲原理,如下:—————————————————— 举一个详细的例子: 一般场景,要访问的域名:www.jizhuomi.com/android,文件名为down.zip ...