Selenium是一套完整的Web應用程序測試系統,它包含了測試的錄制(Selenium IDE)、編寫及運行(Selenium Remote Control)和測試的并行處理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript編寫,因此可運行于任何支持JavaScript的瀏覽器上。與WatiN相同,Selenium也是一款同樣使用Apache License 2.0協議發布的開源框架。
使用selenium進行簡單的模擬登錄
1.引入selenium package, 建立webdriver對象
from selenium import webdriver
sel = webdriver.Chrome()
2.打開設定的url,并等待響應
loginurl = 'http://www.daishusale.com/user/login/1'
# open the login in page
sel.get(loginurl)
3.通過xpath找到登錄框,并填入相應帳號密碼,模擬點擊登錄
try:
# 找到登錄框的位置,并輸入賬號
sel.find_element_by_xpath("http://form[@id='loginForm2']/div[@class='form-input'][1]/input[@id='number2']").send_keys('username‘)
print('user success!')
except:
print('user error!')
time.sleep(1)
try:
#找到密碼框的位置,并輸入密碼
sel.find_element_by_xpath("http://form[@id='loginForm2']/div[@class='form-input'][2]/input[@id='password']").send_keys(’password')
print('pw success!')
except:
print('pw error!')
time.sleep(1)
try:
#找到登錄按鈕,模擬點擊登錄
sel.find_element_by_xpath("http://form[@id='loginForm2']/div[@class='form-input bottom-margin']/input[@id='btnsubmit']").click()
print('click success!')
except:
print('click error!')
time.sleep(3)
4.通過對象的方法獲取當前訪問網站的session cookie
# 獲取session cookie
cookie = [item["name"] + "=" + item["value"] for item in sel.get_cookies()]
cookiestr = ';'.join(item for item in cookie)
print(cookiestr)
5.將獲取到的cookiestr存儲到headers中
# 偽造User-Agent請求頭
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'cookie':cookiestr
}
在接下來的操作中,我們就可以用requests庫,直接進行使用了,這種方法要比使用requests模擬登錄簡單方便快捷