SELENIUM add_cookie并发偶尔失败

问题描述 投票:0回答:1

我在Linux中将硒chromedriver与python结合使用以访问网络。我使用先前从该网站提取的Cookie来登录该网站,并在该网站(具有相同的域)中将Cookie设置一次,然后刷新窗口以开始执行操作。我将cookie保存在文件中,并在每次迭代中从中读取它们。

我在具有不同ip和不同用户代理的不同机器上使用并发访问该Web的不同URL,但是我总是需要登录,这就是为什么我使用cookie。

一切都可以在一个实例上运行,甚至可以在多个并发实例上运行,但是我有时会收到“ WebDriverException:无效的Cookie域”。

我的代码在不同文件中有成千上万行代码,因此我不会在此处粘贴它。实际上,由于我在所有机器上执行相同的代码,所以我不明白为什么它会偶尔失败。

无论如何理解我的工作是:

循环:

Create chromedriver setting a random ip from a set and a random user agent from a set and get a random URL (but valid) of domain X
Add cookies (of domain X) and refresh page
Do things on the web
Close chromedriver and exit

在具有相同Cookie的同一循环中,一切正常,假设80%的时间都成功,但失败了10次迭代中的2次。

[失败时,我会看到Cookie域和current_url始终位于同一域中。我读过一些“解决方案”,说只是在cookie和许多其他组合中添加对(值,名称)。我已经尝试了所有这些,并且在相同的零星时间段内总是遇到相同的错误。

因此,这个问题比与代码相关的问题更具理论性...同时使用同一Cookie是否有任何限制?服务器可以接受来自同一用户/密码的多个同时登录吗?也许与同时使用具有相同日志记录凭据的不同ip / useragent有关?也许是我正在访问的CMS处理的问题?

我正在访问自己的网站进行测试。这是一家prestashop,我使用自己的凭据。

关于可能发生什么的任何想法?预先感谢。

我的下一个尝试将创建多个测试帐户,并在每次迭代中使用随机的Cookie对(用户/密码)。如果我不再收到“无效的cookie域”错误,则表示同意使用相同的cookie会受到限制。

我在Linux中将硒chromedriver与python结合使用以访问网络。我使用先前从该网站提取的Cookie来登录该网站,并在该网站中设置了一次Cookie(使用...

python-3.x linux selenium selenium-chromedriver
1个回答
0
投票

嗯,我已经发现问题了。由于使用的是无头浏览器,因此出现ERR_CONNECTION_CLOSED错误,并且无法检查。我试图在空白页中为域设置cookie,这就是为什么我收到“无效的cookie域”错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.