码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-12-03 15:35:49      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:click   实现   span   百度搜   自动化   excel   testcase   [1]   for   

前言

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

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

     测试脚本:

#coding=utf-8
from selenium import webdriver
import unittest, time, os
class 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参数化去解决。

 

 

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

标签:click   实现   span   百度搜   自动化   excel   testcase   [1]   for   

原文地址:http://www.cnblogs.com/yoyoketang/p/6128682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!