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

Posted jason89

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 


以上是关于Selenium+python自动化21-TXT数据参数化的主要内容,如果未能解决你的问题,请参考以下文章

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

Python学习:自动化测试selenium的指定截图文件名(动态时间)

selenium+python自动化92-多线程启动多个不同浏览器

Selenium02篇python+selenium实现Web自动化:鼠标操作和键盘操作!

python+selenium自动化1

完全机器模拟浏览器操作自动刷网课!不怕被封!!-----python基于selenium实现超星学习通刷视频网课