在使用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()