微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用泡菜和硒在特定域上设置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 举报,一经查实,本站将立刻删除。