如何使用泡菜和硒在特定域上设置Cookie

问题描述

我正忙于为某个网站创建自动化工具,但似乎找不到在两次不同运行之间存储cookie的选项。主要问题是该网站由www.website.com/beforeloginwww.website.com/afterlogin组成,其他所有URL都仅根据您是否登录而被重定向到其中之一。由于没有“重叠url” /“虚拟url”,我可以在第一次手动登录时保存cookie,然后从那时开始每隔两次加载它们,因此,我真的不知道如何解决此问题。这是我保存和加载Cookie的代码

    def save_cookies(self):
        self.browser.get("http://www.website.com") # will be redirected to www.website.com/afterlogin at where it will save the cookies
        pickle.dump(self.browser.get_cookies(),open("cookies.pkl","wb"))

    def load_cookies(self):
        self.browser.get("http://www.website.com") # will be redirected to www.website.com/beforelogin at where it will load the cookies
        if not os.path.isfile("cookies.pkl"):
            return False

        cookies = pickle.load(open("cookies.pkl","rb"))
        print("loading cookies")
        for cookie in cookies:
            print("Adding cookies")
            self.browser.add_cookie(cookie)

        self.refresh()

如上所述,How to set a cookie to a specific domain in selenium webdriver with python?中讨论的查找通用伪URL的解决方案并不是真正的解决方案。

selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain while executing tests in Django with Selenium这样的解决方案也不可选项,因为在登录之前和之后没有相同的URL来保存和加载Cookie。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)