Selenium+python自动化21-TXT数据参数化

前言

     在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解

一、以百度搜索为例,自动搜索五次不同的关键字。输入的数据不同从而引起输出结果的变化。

测试脚本:

 1 #coding=utf-8
 2 from selenium import webdriver
 3 import unittest, time, os
 4 class Login(unittest.TestCase):
 5     def test_login(self):
 6         source = open("D:\\test\\txt.txt", "r")
 7         values = source.readlines()
 8         source.close()
 9         # 执行循环
10         for hzy in values :
11            driver=webdriver.Firefox()
12            driver.get("http://www.baidu.com/")
13            driver.maximize_window()
14            driver.find_element_by_id("kw").send_keys(hzy)
15            driver.find_element_by_id("su").click()
16            time.sleep(2)
17            driver.close()

txt文件:

open方法以只读方式(r)打开本地txt.txt文件,readlines方法是逐行读取整个文件内容。

通过for循环,hzy可以每次获取到文件中一行数据,在定位到百度输入框后,将数据传入send_keys(hzy)。这样通过循环调用,直到文件的中的所有内容全被读取。

二、登录参数化
   现在按照上面的思路,对自动化脚本中用户、名密码进行参数化,通过 python 文档我们发现 python读取文件的方式有:整个文件读取、逐行读取、固定字节读取。

并没有找到一次读取两条数据的好方法。

创建两个文件,分别存放用户名密码。

测试脚本:

 1    #coding=utf-8
 2    from selenium import webdriver
 3    from selenium.common.exceptions import NoSuchElementException
 4    import unittest, time, os
 5    class Login(unittest.TestCase):
 6             def test_login(self):
 7                 source = open("D:\\test\\un.txt", "r") #用户名文件
 8                 un = source.readline() #读取用户名
 9                 source.close()
10                 source2 = open("D:\\test\\pw.txt", "r") #密码文件
11                 pw = source2.readline() #读取密码
12                 source2.close()
13                 driver=webdriver.Firefox()
14                 driver.get("http://www.baidu.com/")
15                 driver.maximize_window()
16                 driver.find_element_by_id("txtusername").clear()
17                 driver.find_element_by_id("txtusername").send_keys(un)
18                 driver.find_element_by_id("txtpassword").clear()
19                 driver.find_element_by_id("txtpassword").send_keys(pw)
20                 driver.find_element_by_id("userlogin").click()
21                 time.sleep(2)
22                 try:
23                       t = driver.find_element_by_xpath("//form/div[4]/div/div[1]/div[1]/div/a/img")
24                 except NoSuchElementException:
25                        assert 0 , u"登录失败,找不到左上角LOG"
26                 driver.close()

原文地址:https://www.cnblogs.com/jason89/p/9028147.html

时间: 2024-10-07 07:17:11

Selenium+python自动化21-TXT数据参数化的相关文章

python自动化21期day8

一.异常处理 # try excpet try: choice = int(input(">>>")) print(choice) except ValueError: print("您输入的不是数字") # 万能异常 # 所有的异常处理都用万能异常好不好? # 具体的异常处理+万能异常: # 能够提前预料到的异常都应该用具体的异常去处理,剩下其他的异常用万能异常控制 # 万能异常应该写在最后 try: choice = int(input(&qu

selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果. 之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的. 最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserIn

Pycharm+Selenium Python 自动化搭建

Pycharm+Selenium  自动化搭建 一,按照博客链接安装: (1)Pycharm+Selenium Python 自动化搭建 (2) 下载chrom对应版本chromdriver http://chromedriver.chromium.org/downloads (3)解压放在python37目录下 二,创建后代码 (1)代码: from selenium import webdriver options = webdriver.ChromeOptions() options.bi

基于selenium实现自动化爬取数据

基于selenium实现自动化爬取数据 如果想具体查看selenium自动化模块的更多功能请看我的博客测试分类中有介绍 selenium 概念:基于浏览器自动化的模块 自动化:可以通过代码指定一系列的行为动作,然后将其作用到浏览器中. pip install selenium selenium和爬虫之间的关联 1.便捷的捕获到任意形式动态加载的数据(可见即可得) 2.实现模拟登录 谷歌驱动下载:http://chromedriver.storage.googleapis.com/index.ht

【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································

selenium+python自动化测试--读取excel数据

1.excel中数据(注意:数据是纯数字时,要将其设置成文本) 2.读取excel文件函数封装 文件名称:read_excel.py import xlrd class ReadExcel(): def __init__(self, excelPath, sheetName="Sheet1"): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) # 获取第一

selenium+python自动化78-autoit参数化与批量上传

前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片.这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 1.参数化传入的参数,可以通过autoit的命令行参数: ```    myProg.exe param1 "This is a string parameter" 99``` 在脚本中,可用以下变量获取命令行参数: ```$CmdLine[0] ; = 3$CmdLine[1] ; =

selenium+python自动化78-autoit参数化与批量上传【转载】

转至博客:上海-悠悠 前言前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片.这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 1.参数化传入的参数,可以通过autoit的命令行参数: ```    myProg.exe param1 "This is a string parameter" 99``` 在脚本中,可用以下变量获取命令行参数: ```$CmdLine[0] ; = 3$CmdLi

selenium+python自动化97--unittest参数化(paramunittest)

前言 paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例 前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例.本篇继续介绍另外一个参数化的框架paramunittest,也能实现一样的效果. 环境准备 1.先pip 下载安装 paramunittest pip install paramunittest 官方文档 1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/