1. 程式人生 > 其它 >web自動化10-視窗截圖、驗證碼處理

web自動化10-視窗截圖、驗證碼處理

視窗截圖

1、是什麼

  說明:把當前操作的頁面,截圖儲存到指定位置

 

2、程式碼中怎麼使用?

  說明:在Selenium中,提供了截圖方法,我們只需要呼叫即可


  方法:
    driver.get_screenshot_as_file(imgpath)
        imgpath:圖片儲存路徑

 

注意事項:

  1、預設使用png格式,.jpg可以使用,但是會有警告

  2、指定圖片存放檔案路徑,需要先手動建立資料夾


3、直接看需求:

  

開啟微博首頁,完成以下操作
  1). 點選立即註冊,填寫註冊資訊手機、密碼、生日
  2). 截圖儲存

 

 cookie

1、驗證碼:   一種隨機生成的資訊(數字、字母、漢字、圖片、算術題)等為了防止惡意的請求行為,增加應用的安全性。     2、驗證碼的處理方式: 方式:     1). 去掉驗證碼               (測試環境下-採用)     2). 設定萬能驗證碼               (生產環境和測試環境下-採用)     3). 驗證碼識別技術               (通過Python-tesseract來識別圖片型別驗證碼;識別率很難達到100%)     4). 記錄cookie               (通過記錄cookie進行跳過登入)   3、 cookie是什麼?  
  1. Cookie是由Web伺服器生成的,並且儲存在使用者瀏覽器上的小文字檔案,它可以包含使用者相關的資訊。
  2. Cookie資料格式:鍵值對組成(python中的字典)
  3. Cookie產生:客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就向客戶端瀏覽器頒發一個Cookie資料
  4. Cookie使用:當瀏覽器再次請求該網站時,瀏覽器把請求的資料和Cookie資料一同提交給伺服器,伺服器檢查該Cookie,以此來辨認使用者狀態。
  4、selenium操作cookie     說明:Selenium中對cookie操作提供相應的方法   方法:     1. get_cookie(name) -->   獲取指定cookie       name:為cookie的名稱     2. get_cookies() -->     獲取本網站所有本地cookies     3. add_cookie(cookie_dict) --> 新增cookie       cookie_dict:    一個字典物件,必選的鍵包括:"name" and "value"   4、看需求:
需求:使用cookie實現跳過登入
1). 手動登入百度,獲取cookie 2). 使用獲取到的cookie,達到登入目的,然後就可以執行登入之後的操作

 

 解決:
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.add_cookie({'name':'BDUSS','value':'根據實際填寫'})
time.sleep(3)
driver.refresh()
time.sleep(3)
driver.quit()