zoukankan      html  css  js  c++  java
  • selenium 数据驱动

    1、数据不规则,使用xml

    2、使用固定的用户名与密码,使用数据字典

    3、搜索关键字,使用数组

    4、大量的数据,使用数据库

    一、类、函数驱动

    do_class.py

    #encoding=utf-8

    from selenium import webdriver
    #调用public文件的Login类里的函数
    #from public_class_data import Login

    driver = webdriver.Firefox()
    driver.implicitly_wait(10)
    driver.get("http://www.126.com")
    class Account(object):
    '''docstring for Account'''

    def __init__(self,username='',password=''):
    self.username = username
    self.password = password

    def do_login_as(user_info):
    self.driver.find_element_by_id("idInput").clear()
    self.driver.find_element_by_id("idInput").send_keys('username')
    self.driver.find_element_by_id("pwdInput").clear()
    self.driver.find_element_by_id("pwdInput").send_keys('password')
    self.driver.find_element_by_id("loginBtn").click()

    #实例化登录信息
    admin = Account(username='admin',password='123')

    guest = Account(username='guest',password='123')

    #调用登录函数
    do_login_as(admin)
    do_login_as(guest)
    #退出
    def logout(self):
    self.driver.find_element_by_link_text("退出").click()
    self.driver.quit()

     二、数组和字典方式的调用

    public_class_data.py

    #coding=utf-8
    class Login():
    def __init__(self):
    self.driver=driver
    def login(self,username,password):
    self.driver.find_element_by_id("idInput").clear()
    self.driver.find_element_by_id("idInput").send_keys(username)
    self.driver.find_element_by_id("pwdInput").clear()
    self.driver.find_element_by_id("pwdInput").send_keys(password)
    self.driver.find_element_by_id("loginBtn").click()

    #退出
    def logout(self):
    self.driver.find_element_by_link_text("退出").click()
    self.driver.quit()

    #coding=utf-8

    #使用数组的方式读取
    from selenium import webdriver

    '''
    file_info = open("baidu.txt",'r')
    values = file_info.readlines()
    file_info.close()
    '''
    shuzu = ['python','selenium','day day up']
    for search in shuzu:
    driver = webdriver.Firefox()
    driver.implicitly_wait(10)
    driver.get("https://www.baidu.com")
    driver.find_element_by_id("kw").clear()
    driver.find_element_by_id("idInput").send_keys('search')
    driver.find_element_by_id("su").click()
    driver.quit()


    #使用数据字典的方式读数据,如用户名和密码
    #encoding=utf-8
    from selenium import webdriver
    from public_class_data import Login
    from time import sleep
    '''
    file_info = open("baidu.txt",'r')
    values = file_info.readlines()
    file_info.close()
    '''
    zidian = {'user01':'pass01','user02':'pass02'}

    for k,v in zidian.items():
    driver = webdriver.Firefox()
    driver.implicitly_wait(10)
    driver.get("https://www.126.com")
    Login(driver).login(k,v)
    sleep(1)
    Login(driver).logout()
    prink(k,v)

    三、csv文件驱动

    #encoding=utf-8
    import csv

    my_file = 'user_info1.csv'
    data = csv.reader(open(my_file,'r'))
    #data2 = data.encode('gbk','ignore').decode("gbk")

    for user in data:
    print (user)
    #显示其中的某一列
    print (user[0])
    print (user[1])
    print (user[2])
    print (user[3])

    注意:Python3,读文件只能用r,不能用rb,否则会报错:

    Traceback (most recent call last):

      File "D:Python3studydo_data_file_csv.py", line 11, in <module>

        for user in data:

    _csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

    [Finished in 0.5s with exit code 1]

    四、txt文件驱动

    #coding=utf-8
    from selenium import webdriver
    from public_class_data import Login
    from time import sleep

    user_file = open("user_info.txt",'r')
    values = user_file.readlines()
    user_file.close()

    #ctrl +d ,批量修改,按几次就选中几个,#分隔行为;
    for i in values:
    username= i.split(';')[0]
    print (username)
    password = i.split(';')[1] #1代表读行里的第二列数据
    print (password)

     五、xml驱动

      

  • 相关阅读:
    td中内容自动换行
    PHP计算两个时间的年数、月数以及天数
    phpexcel常用操作
    php实现将人民币金额转大写的办法
    解决 PHPExcel 长数字串显示为科学计数
    phpexcel单元格内换行
    phpexcel设置所有单元格的默认对齐方式
    {dede:sql}标签的用法
    PHP 文件上传
    Dedecms 数据库结构分析
  • 原文地址:https://www.cnblogs.com/bzdmz/p/10331266.html
Copyright © 2011-2022 走看看