在使用selenium進行自動化登錄的過程中已經獲取到cookie后,依舊報錯:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain
獲取cookie和添加cookie原代碼如下:
#獲取cookie dr = webdriver.Chrome("D:\softwarePro\BrowserDriver\chromedriver.exe") dr.maximize_window() dr.get(url) c = dr.get_cookie('JSESSIONID') print(c)
#添加cookie dr = webdriver.Chrome("D:\softwarePro\BrowserDriver\chromedriver.exe") dr.maximize_window() dr.add_cookie({'domain': '192.168.2.211', 'httpOnly': True, 'name': 'JSESSIONID', 'path': '/smartcommty', 'sameSite': 'Lax', 'secure': False, 'value': '5574c24a-dbc4-4a7d-9607-cc24f5653ebf'}) dr.get(url) dr.refresh()
得到的頁面一直是域名為data的白頁面:
經過網上查找資料,自我分析得知:selenium的默認域名為data,cookie中帶域名,在設置cookie時發現當前域名不包含在cookie中,所以設置失敗,一直都是data的這個頁面。
解決方法就是:在設置cookies前,先訪問需要登錄的地址,然后設置cookies登錄跳轉,就OK了。
如下:
#添加cookie dr = webdriver.Chrome("D:\softwarePro\BrowserDriver\chromedriver.exe") dr.maximize_window() dr.get(url) dr.add_cookie({'domain': '192.168.2.211', 'httpOnly': True, 'name': 'JSESSIONID', 'path': '/smartcommty', 'sameSite': 'Lax', 'secure': False, 'value': '5574c24a-dbc4-4a7d-9607-cc24f5653ebf'}) dr.get(url) dr.refresh()