Selenium2+python自动化21-TXT数据参数化
前言
在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解
一、以百度搜索为例,自动搜索五次不同的关键字。输入的数据不同从而引起输出结果的变化。
测试脚本:
#coding=utf-8from selenium import webdriverimport unittest, time, osclass Login(unittest.TestCase): def test_login(self): source = open("D:\\test\\txt.txt", "r") values = source.readlines() source.close() # 执行循环 for hzy in values : driver=webdriver.Firefox() driver.get("http://www.baidu.com/") driver.maximize_window() driver.find_element_by_id("kw").send_keys(hzy) driver.find_element_by_id("su").click() time.sleep(2) driver.close()
txt文件:
open方法以只读方式(r)打开本地txt.txt文件,readlines方法是逐行读取整个文件内容。
通过for循环,hzy可以每次获取到文件中一行数据,在定位到百度输入框后,将数据传入send_keys(hzy)。这样通过循环调用,直到文件的中的所有内容全被读取。
二、登录参数化
现在按照上面的思路,对自动化脚本中用户、名密码进行参数化,通过 python 文档我们发现 python读取文件的方式有:整个文件读取、逐行读取、固定字节读取。
并没有找到一次读取两条数据的好方法。
创建两个文件,分别存放用户名密码。
测试脚本:
#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import unittest, time, os
class Login(unittest.TestCase):
def test_login(self):
source = open("D:\\test\\un.txt", "r") #用户名文件
un = source.readline() #读取用户名
source.close()
source2 = open("D:\\test\\pw.txt", "r") #密码文件
pw = source2.readline() #读取密码
source2.close()
driver=webdriver.Firefox()
driver.get("http://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_id("txtusername").clear()
driver.find_element_by_id("txtusername").send_keys(un)
driver.find_element_by_id("txtpassword").clear()
driver.find_element_by_id("txtpassword").send_keys(pw)
driver.find_element_by_id("userlogin").click()
time.sleep(2)
try:
t = driver.find_element_by_xpath("//form/div[4]/div/div[1]/div[1]/div/a/img")
except NoSuchElementException:
assert 0 , u"登录失败,找不到左上角LOG"
driver.close()
本来想用百度的例子的,无奈有验证码,麻烦,所以用了公司内网测试环境。
分别打开txt文件,通过un和pw来接收用户账户和密码信息,将接收的数据通过send_keys(XX)转入到执行程序中。
虽然目的达到了这,但这样的实现有很多问题:
1、用户名密码分别在不同的文件里,修改用户名和密码比较麻烦。
2、un.txt 和 pw.txt 文件中只能保存一个用户密码,无能很好的循环读取。
多个账户和密码的txt文件,小编还未能找到解决的方法,欢迎大家给出意见和想法。
多账户和密码建议还是用excel参数化去解决。
在学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:232607095
Selenium2+python自动化21-TXT数据参数化的更多相关文章
- Selenium2+python自动化44-元素定位参数化(find_element)
前言 元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合为一种呢?也就是把定位的方式参数化,如id,name.css等设置为一个参数,这样只需维护定位方式的参数 ...
- Selenium2+python自动化44-元素定位参数化(find_element)【转载】
前言 元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合为一种呢?也就是把定位的方式参数化,如id,name.css等设置为一个参数,这样只需维护定位方式的参数 ...
- 【重要】Selenium2+python自动化44-元素定位参数化(find_element)
转:https://www.cnblogs.com/yoyoketang/p/6551274.html 前言 元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合 ...
- Selenium2+python自动化21-TXT数据参数化【转载】
前言 在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一.以百度搜索为例,自动搜索五次不同的关键字.输入的数据不同从而引 ...
- Selenium2+python自动化20-Excel数据参数化【转载】
前言 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Excel的内容进行参数化.当然为了便于各位小 ...
- Selenium2+python自动化59-数据驱动(ddt)
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...
- Selenium2+python自动化59-数据驱动(ddt)【转载】
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...
- Selenium2+python自动化13-Alert
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...
- Selenium2+python自动化28-table定位
前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...
随机推荐
- java 里面的string 和byte[] 怎么互转
public class TestBytes { private static String FORMAT = "UTF-8"; public static void main(S ...
- Abstract和Virtual和interface , 派生类中重写 override / new关键字
http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html C#中Abstract和Virtual 在C#的学习中,容易混淆virtua ...
- MSClass 和setInterval 的并发,ajax定时有采集信息滚动显示
setTimeout 用于延时器,只执行一次. setInterval:用于多次执行. //****************************************** 项目中引用到jquer ...
- NeHe OpenGL教程 第四十六课:全屏反走样
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- JVM参数(一)JVM类型以及编译器模式
现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色.自适应内存管理.垃圾收集.及时编译.动态类加载.锁优化——这里仅仅列举了某些场景下会发生的神奇的事情,但他们几乎不 ...
- error BK1506 : cannot open file '.\Debug\????????.sbr': No such file or dire
http://blog.csdn.net/shuilan0066/article/details/8738035 分类: 调试错误信息2013-03-29 19:08492人阅读 ...
- 每天一个 Linux 命令(4):mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录- 2.命令功能 ...
- Zero Requiem
“最后是在游行.暴君鲁路修高居王座,两侧列着所有反对者的代表:黑色骑士团.黎星刻.原圆桌骑士名列第三的吉诺,以及一身女囚装的娜娜丽,他们都即将被公开处死.尤菲米娅在第一次“特别行政区•日本”成立仪式上 ...
- Blackfin DSP(六):BF533的SPORT接口
1.特性 bf533有两个SPORT口(synchronous serial Port),即同步串行接口.完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCLK/2.最大支持32bit字 ...
- out参数,ref参数,params参数数组
params参数数组 params关键字可以为方法指定数目可变的参数.params关键字修饰的参数,可以传入任意数目的同类型参数,甚至可以不传入参数. 不过params修饰的参数必须是方法的最后一个参 ...