遇到問題:以前一直能用的腳本忽然跑不通了,仔細一看原來是研發新加了圖片驗證碼......web
解決問題: 手動抓取了cookie並塞進去,解決問題。固然若是你的cookie有效期過短或者是隨着會話關閉就失效的,此辦法並不合適。chrome
代碼初版:瀏覽器
def Login(driver):
cookies = { 'name': 'wx_sid', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***'}
driver.add_cookie(cookies)
driver.get("http://admin.***.com/index/login")
driver.quit()
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver)
執行時發現啓動瀏覽器後沒有訪問指定的地址,在網上查資料緣由是 塞cookie時找不到塞到哪裏。 解決辦法是加入domain或者先訪問一下要塞入地址的連接。
代碼第二版:
def Login(driver):
driver.get("http://admin.***.com/index/login")
cookies = { 'name': 'wx_sid', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***','path': '/','domain': '.admin.***.com'}
driver.add_cookie(cookies)
driver.get("http://admin.***.com/index")
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver)
先訪問後發現仍是塞不進去,再查資料,解決辦法是須要刷新一下頁面。
代碼第三版:
def Login(driver):
driver.get("http://admin.***.com/index/login")
cookies = { 'name': 'wx_sid', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***','path': '/','domain': '.admin.***.com'}
driver.add_cookie(cookies)
driver.refresh() # 刷新頁面
driver.get("http://admin.***.com/index")
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver)
刷新後終於成功了,切換環境,從測試環境切到線上環境,再次執行又失敗了,反覆找緣由,終於.... 線上環境用的cookie name是wx這個,測試環境因爲跟其餘衝突研發本身改爲了wx_sid... 因此提醒小夥伴,這個cookie到底應該用哪一個最好仍是跟對應研發確認好。
最終版線上環境代碼:
def Login(driver): driver.get("http://admin.***.com/index/login") # 線上環境 cookies = { 'name': 'wx', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***','path': '/','domain': '.admin.***.com'} driver.add_cookie(cookies) driver.refresh() driver.get("http://admin.***.com/index")if __name__=='__main__': driver = webdriver.Chrome(executable_path="d:\\chromedriver") Login(driver)