python3 selenium web自動化測試之excel引數化
簡單來說,就是不把測試的資料(或者說用例的引數)直接寫在程式碼裡,而是寫在excel中,程式碼從excel表格中讀取出來,做到資料分離。簡單舉個例子,上程式碼:
#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time
import xlrd
def open_excel(file = 'login.xlsx'):
try:
data = xlrd.open_workbook(file) # 開啟Excel檔案讀取資料
return data
except Exception, e:
print str(e)
# 根據索引獲取Excel表格中的資料 引數:file:Excel檔案路徑 colnameindex:表頭列名所在行的所以 ,by_index:表的索引
def excel_table_byindex(file = 'login.xlsx',colnameindex=0,by_index=0):
data = open_excel(file)
table = data.sheets()[by_index] # 通過索引順序獲取獲取一個工作表
nrows = table.nrows # 獲取行數
colnames = table.row_values(colnameindex) # 獲取某一行資料
list =[]
for rownum in range(1, nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
def Login():
listdata = excel_table_byindex("D:\\login.xlsx", 0)
# listdata = excel_table_byindex("login.xlsx", 0)
if(len(listdata) <= 0):
assert 0, u"Excel資料異常"
for i in range(1, len(listdata)):
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
assert u"百度一下,你就知道" in driver.title
# 點選登入按鈕
driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click()
time.sleep(3)
url = driver.current_window_handle
driver.switch_to.window(url)
time.sleep(3)
driver.find_element_by_name("userName").clear()
driver.find_element_by_name("userName").send_keys(listdata[i]['passname'])
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys(listdata[i]['password'])
driver.find_element_by_name("memberPass").click()
time.sleep(15)
driver.find_element_by_id("TANGRAM__PSP_8__submit").click()
# driver.find_element_by_id('passname').send_keys(listdata[i]['passname'])
# driver.find_element_by_id('password').send_keys(listdata[i]['password'])
# driver.find_element_by_xpath("//div[2]/div[2]/div/div[6]/input").click()
time.sleep(5)
try:
elem = driver.find_element_by_id("kw")
except NoSuchElementException:
assert 0, u"登入失敗,找不到右上角頭像"
driver.close()
if __name__ == '__main__':
Login()
表格中的資料為:
小編不保證你拷貝下來就能跑通過,因為環境有可能不一樣。所以,請看明白後舉一反三。謝謝您的瀏覽。
相關文章
- 利用 Selenium 自動化 web 測試Web
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 介面自動化測試:引數化封裝(excel檔案讀取)封裝Excel
- Web自動化-Selenium自動化測試-1-主要學習計劃Web
- selenium java自動化測試Java
- Selenium自動化測試框架框架
- Selenium+Java+TestNG進行web自動化測試JavaWeb
- Selenium自動化測試網頁網頁
- java+selenium 自動化測試Java
- selenium自動化測試面試集合面試
- Selenium3與Python3實戰Web自動化測試框架【日記1】PythonWeb框架
- Web自動化測試 五 ----- selenium的等待和切換Web
- Web自動化測試 環境搭建(selenium+python)WebPython
- 加速Web自動化測試Web
- selenium自動化測試框架之PO設計模式框架設計模式
- UI自動化測試之selenium超神之路(1)UI
- 自動化測試之Selenium篇(一):環境搭建
- [android]Monkey自動化測試引數Android
- 自動化測試小技巧之Airtest-Selenium和Excel的無縫協作AIExcel
- python3 使用 Selenium 自動化測試或爬取資料Python
- Web自動化測試 —— 測試環境搭建 (Selenium+Python) Windows篇WebPythonWindows
- 自動化測試 selenium 環境搭建
- 自動化測試框架Selenium入門框架
- selenium+python自動化測試Python
- 「UI 測試自動化selenium」彙總UI
- Selenium自動化實現web自動化-1Web
- 基於Selenium+Python的web自動化測試框架PythonWeb框架
- 使用Selenium/Ant做Web應用遠端自動化測試Web
- Selenium用法詳解 - - selenium自動化測試概要
- 自動化測試進階課程——Selenium自動化測試通關實戰班
- Selenium Web Driver自動化測試(java版)系列下半部分(37) - 關鍵字驅動自動化測試框架(2)-測試過程...WebJava框架
- Selenium 自動化測試從零實戰
- Web自動化之Headless Chrome測試框架整合WebChrome框架
- 自動化測試框架Selenium的使用——安裝Selenium框架
- 自動化測試系列 —— UI自動化測試UI
- 測試開發之自動化篇-自動化測試框架設計框架
- 14 Web 自動化測試 -- PageObject 思想WebObject
- [android]android自動化測試七之動態AVD硬體引數Android