在做web測試過程中,常常會遇到登錄過程中需要滑動來進行登錄,通常滑動處理起來比較麻煩,那么我們可以通過跳過這個滑動,簡單方法,讓開發在測試版本中屏蔽滑動模塊,如果開發不願意屏蔽的時候,我們應該怎么操作呢?前面介紹接口測試的時候,提到過,我們可以通過cookies來進行模擬登陸,跳過登陸驗證,那么在做web自動化的時候能否也通過cookies來跳過登陸呢?
cookies
Cookie,有時也用其復數形式 Cookies。類型為“小型文本文件”,是某些網站為了辨別用戶身份,進行Session跟蹤而儲存在用戶本地終端上的數據(通常經過加密),一般存放在客戶端上。
cookie我們用的最多的也就是登陸了,作為用戶的唯一標識,我們可以通過cookie進行繞過輸入驗證碼的環節,就是通過selenium進行操作cookie,那么selenium對於cookie又那些操作呢?
繞過登陸
通過cookie繞過登陸,肯定先獲取登陸cookie,老規矩打開百度,登陸按鈕,查看cookie內容,選取適合的cookie
獲取到對應的cookie,這里安靜介紹下如何書寫cookie,cookie是成鍵值對顯示的,也就是類似於字典的內容,
cookie1 = { "domain":"xxxx", # 服務器地址 "name":"xxxx", # cookie名字 "value":"xxxxx" # cookie值 }
通過上面找到需要的cookie值,然后通過上面的模式進行填寫,然后通過 add_cookie() 進行添加cookie
# coding:utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.baidu.com/') cookie1 = { "domain":".baidu.com", "name":"BAIDUID", "value":"xxxxx" } cookie2 = { "domain":".baidu.com", "name":"BDUSS", "value":"xxxxx" } driver.add_cookie(cookie_dict=cookie1) driver.add_cookie(cookie2) time.sleep(3) # 頁面刷新 driver.refresh() text = driver.find_element_by_xpath("//*[@class='user-name c-font-normal c-color-t']").text print(text) if text=='我在誰身旁': print('登錄成功') else: print('登錄失敗')
結果就不用給大家列了,很顯然是成功的
其他cookie操作
有小伙伴們問,selenium操作cookie就只有這一種嗎?那肯定不是的,安靜繼續拿着百度案例為大家解釋,繼續上述步驟,通過 get_cookies() 獲取全部cookie,也可以通過 get_cookie() 獲取指定cookie,當然也可以通過 delete_cookie(name,optionsString) 進行刪除cookie
# coding:utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.baidu.com/') cookie1 = { "domain":".baidu.com", "name":"BAIDUID", "value":"xxxxx" } cookie2 = { "domain":".baidu.com", "name":"BDUSS", "value":"xxxxx" } driver.add_cookie(cookie_dict=cookie1) driver.add_cookie(cookie2) time.sleep(3) # 頁面刷新 driver.refresh() # 獲取全部cookies cookie_all = driver.get_cookies() print(cookie_all) # 獲取單個cookie bduss_cookie = driver.get_cookie('BDUSS') print(bduss_cookie)
展示下打印的cookie值
刪除的cookie安靜這里沒有做演示,大家可以進行練練手,熟能生巧。
如果感覺安靜寫的對您有幫助,可以點個關注,持續更新中。不懂的或者有問題的可以下方留言。