在使用selenium进行自动化登录的过程中已经获取到cookie后,依旧报错:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain
获取cookie和添加cookie原代码如下:
<span>#</span><span>获取cookie</span> <span> <a href="https://www.gaodaima.com/tag/dr" title="查看更多关于dr的文章" target="_blank">dr</a> </span>= webdriver.Chrome(<span>"</span><span>D:softwareProBrowserDriverchromedriver.exe</span><span>"</span><span>) dr.maximize_window() dr.get(url) c </span>= dr.get_cookie(<span>"</span><span>JSESSIONID</span><span>"</span><span>) </span><span>print</span>(c)
<span>#</span><span>添加cookie</span> <span> dr </span>= webdriver.Chrome(<span>"</span><span>D:softwareProBrowserDriverchromedriver.exe</span><span>"</span><span>) dr.maximize_window() dr.add_cookie({</span><span>"</span><span>domain</span><span>"</span>: <span>"</span><span>192.168.2.211</span><span>"</span>, <span>"</span><span>httpOnly</span><span>"</span>: True, <span>"</span><span>name</span><span>"</span>: <span>"</span><span>JSESSIONID</span><span>"</span>, <span>"</span><span>path</span><span>"</span>: <span>"</span><span>/smartcommty</span><span>"</span>, <span>"</span><span>sameSite</span><span>"</span>: <span>"</span><span>Lax</span><span>"</span>, <span>"</span><span>secure</span><span>"</span>: False, <span>"</span><span>value</span><span>"</span>: <span>"</span><span>5574c24a-dbc4-4a7d-9607-cc24f5653ebf</span><span>"</span><span>}) dr.get(url) dr.refresh()</span>
得到的页面一直是域名为data的白页面:
经过网上查找资料,自我分析得知:selenium的默认域名为data,cookie中带域名,在设置cookie时发现当前域名不包含在cookie中,所以设置失败,一直都是data的这个页面。
解决方法就是:在设置cookies前,先访问需要登录的地址,然后设置cookies登录跳转,就OK了。
如下:
<span>#</span><span>添加cookie</span> <span> dr </span>= webdriver.Chrome(<span>"</span><span>D:softwareProBrowserDriverchromedriver.exe</span><span>"</span><span>) dr.maximize_window() dr.get(url) dr.add_cookie({</span><span>"</span><span>domain</span><span>"</span>: <span>"</span><span>192.168.2.211</span><span>"</span>, <span>"</span><span>httpOnly</span><span>"</span>: True, <span>"</span><span>name</span><span>"</span>: <span>"</span><span>JSESSIONID</span><span>"</span>, <span>"</span><span>path</span><span>"</span>: <span>"</span><span>/smartcommty</span><span>"</span>, <span>"</span><span>sameSite</span><span>"</span>: <span>"</span><span>Lax</span><span>"</span>, <span>"</span><span>secure</span><span>"</span>: False, <span>"</span><span>value</span><span>"</span>: <span>"</span><span>5574c24a-dbc4-4a7d-9607-cc24f5653ebf</span><span>"</span><span>}) dr.get(url) dr.refresh()</span>