Selenium參數化分為大小:
小:list、dict、函數
大:txt、excel、mysql、redis
哪種方式使自己的工作簡單高效就選那種!!!
Selenium進行參數化有多種形式:
本文全部以百度為例
一、把需要的參數寫在一個txt文檔中進行遍歷,示例如下
1 #引入所需包 2 import time,codecs 3 from selenium.webdriver.common.by import By 4 from selenium import webdriver 5 6 #把打開的文檔內容進行utf-8編碼 7 source = codecs.open("123.txt","r","utf-8") 8 value = source.readlines() 9 # print(list(value)) 10 11 #遍歷txt文檔中的內容 12 for search in value: 13 driver = webdriver.Chrome() 14 url = "https://www.baidu.com/" 15 driver.get(url) 16 driver.find_element(By.ID,"kw").send_keys(search) 17 time.sleep(3) 18 driver.find_element(By.ID,"su").click() 19 driver.quit()
二、把需要的參數寫在一個函數中,需要的時候進行調用,示例如下
函數部分
1 def fun(user="hanxiaobei",pswd="123456"): 2 print(u"調用函數成功") 3 return user,pswd
代碼部分
1 from selenium.webdriver.common.by import By 2 from selenium import webdriver 3 import time 4 import k1 5 c2,c3=k1.fun() 6 # print(k2,k3) #打印是否調用成功 7 8 driver = webdriver.Chrome() 9 url = "https://www.baidu.com/" 10 driver.get(url) 11 driver.find_element(By.LINK_TEXT,"登錄").click() 12 time.sleep(3) 13 driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(c2) 14 driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(c3) 15 time.sleep(20) #由於需要輸入驗證碼,我采用的手動輸入,嘎嘎 16 driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click() 17 time.sleep(5) 18 driver.quit()
三、把需要的參數寫在字典中,需要的時候進行調用,示例如下
字典寫成了一個函數,如下
1 def zidian(): 2 data = {"han":"Hanxiaobei","user":123456,"hanxiaobei1":"1234567890"} 3 return data
遍歷字典代碼部分,如下
1 from selenium.webdriver.common.by import By 2 from selenium import webdriver 3 import time 4 import k1 5 info=k1.zidian() 6 # print(info) 7 for username,passwd in info.items(): 8 print(username) 9 print(passwd) 10 driver = webdriver.Chrome() 11 url = "https://www.baidu.com/" 12 driver.get(url) 13 driver.find_element(By.LINK_TEXT,"登錄").click() 14 time.sleep(3) 15 driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(username) 16 driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(passwd) 17 time.sleep(20) 18 driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click() 19 time.sleep(5) 20 driver.quit()
四、可以把需要的參數寫在Excel中,進行遍歷取值
關於操作Excel的模塊和方法參考我之前寫的:http://www.cnblogs.com/hanxiaobei/p/6565587.html