前言
在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