selenium+python做引數化,直接用列表、讀取txt、csv檔案內容
阿新 • • 發佈:2018-12-13
1、直接在指令碼中寫一個列表作為引數:
以百度輸入框中每次輸入不同字元為例:
from selenium import webdriver search_text = ['python', '中文', 'text'] for text in search_text: driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.baidu.com") driver.find_element_by_id('kw').send_keys(text) driver.find_element_by_id('su').click() driver.quit() print (text)
依次開啟輸入框,輸入一個數據,關閉頁面,10秒後開啟第二個輸入框,輸入資料,再關閉重新開啟…
2、還是以百度為例,讀取txt檔案:
首先在指令碼的同級目錄新建一個txt檔案,每行輸入一個引數如
1
2
3
…
from selenium import webdriver user_file = open('./user_info.txt', 'r') lines = user_file.readlines()//讀取檔案 user_file.close() for line in lines: driver = webdriver.Firefox() driver.implicitly_wait(10)//隱式等待 driver.get("http://www.baidu.com") driver.find_element_by_id('kw').send_keys(line) driver.find_element_by_id('su').click() driver.quit() print (line)
效果和之前一樣,讀的是txt檔案的內容
3、還是以百度為例,讀取csv檔案
首先在指令碼同級目錄建立csv檔案,注意用wps或excel建立,直接改字尾名可能不是真正的csv檔案,再建立一個.py檔案,輸入以下內容
import csv //注意這裡匯入csv包 from selenium import webdriver date = csv.reader(open('./info.csv', 'r'))//用csv.reader方法讀取檔案 for line in date: driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.baidu.com") driver.find_element_by_id('kw').send_keys(line) driver.find_element_by_id('su').click() driver.quit() print (line)
這次讀的是csv檔案的內容