selenium基礎(參數化腳本)


參數化腳本

什么是參數化

  • 參數化就是用包含多組數據的參數列表,使之替換腳本中的響應常量值,這樣,在腳本運行的時候,就會使用參數表中的數據來代替腳本中的常量值
  • 由於參數表中包含了多組數據,所以執行用例時,會多次自動運行腳本,每次使用不同組的數據來代替腳本,這個運行次數就是參數表中的記錄數,每執行一次測試,稱為一個反復

三種參數化的方法

  • 使用列表進行參數化
  • 讀取TXT文件中的數據,讀取文本有三種方式
    1. read():讀取整個文件
    2. readline():讀取一行數據
    3. readlines():讀取所有行的數據
    4. user_file=open('test_data.txt','r')#以只讀的方式打開test_data.txt文件,可標注文件路徑或當文件和運行腳本在同一文件下時標注文件名稱
      lines=user_file.readlines()#讀取文件中的所有行,以數組的形式進行保存
      user_file.close()#關閉文件
      
      #遍歷在文件中取出的數組
      for line in lines:
          username=line.split(',')[0]#以逗號作為分隔符,取出數組中的第一個元素
          password=line.split(','[1])#以逗號作為分隔符,取出同一數組中的第二個元素
          print(username.password)
  • 獲取CSV文件中的數據
  • import csv#引入CSV包
    data=csv.reader(open('D:\\test\\login.csv','r'))#讀取CSV文件並以只讀的方式打開CSV文件
    
    for line in data:
        print(line[0], line[1])#line[0]即讀取line中的第一列元素 

例子:使用參數化的方式實現在百度頁面中搜索不同的關鍵字

from selenium import webdriver
import time
keys=['selenium','自動化測試','性能測試','接口測試']
driver=webdriver.Firefox()
driver.get('https://www.baidu.com')

for text in keys:
    driver.find_element_by_xpath('//input[@id="kw"]').clear()
    driver.find_element_by_xpath('//input[@id="kw"]').send_keys(text)
    driver.find_element_by_id('su').click()
    print(driver.title)
    time.sleep(2)
driver.quit() 

 例子:以百度登錄功能為例,使用讀取txt文本的方式進行參數化

from selenium import webdriver
import time

file_txt=open('D:\\test\\login.txt','r')
lines=file_txt.readlines()
file_txt.close()

for line in lines:
    username=line.split(',')[0]
    password=line.split(',')[1]
    print(username,password)
    driver=webdriver.Firefox()
    driver.get('http://www.baidu.com')
    driver.find_element_by_link_text('登錄').click()
    time.sleep(2)
    driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
    driver.find_element_by_name('userName').send_keys(username)
    driver.find_element_by_name('password').send_keys(password)
    driver.find_element_by_id('TANGRAM__PSP_10__memberPass').click()
    driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
    time.sleep(2)
    driver.quit()

 例子:以百度登錄功能為例,使用讀取CSV文件的方式進行參數化

from selenium import webdriver
import time
import csv#引入CSV包
data=csv.reader(open('D:\\test\\login.csv','r'))#讀取CSV文件並以只讀的方式打開CSV文件

for line in data:
    print(line[0], line[1])#line[0]即讀取line中的第一列元素
    driver=webdriver.Firefox()
    driver.get('http://www.baidu.com')
    driver.find_element_by_link_text('登錄').click()
    time.sleep(2)
    driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
    driver.find_element_by_name('userName').send_keys(line[0])#引用CSV文件中第一列元素
    driver.find_element_by_name('password').send_keys(line[1])#引用CSV文件中第一列元素
    driver.find_element_by_id('TANGRAM__PSP_10__memberPass').click()
    driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
    time.sleep(2)
    driver.quit()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM