Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pickle和selenium在特定域上设置cookie_Python_Selenium_Cookies_Automation_Pickle - Fatal编程技术网

Python 如何使用pickle和selenium在特定域上设置cookie

Python 如何使用pickle和selenium在特定域上设置cookie,python,selenium,cookies,automation,pickle,Python,Selenium,Cookies,Automation,Pickle,我正忙着为某个网站创建一个自动化工具,但似乎找不到在两次不同运行之间存储cookie的选项。主要的问题是,该网站由和组成,每个其他url只是被重定向到其中一个,这取决于您是否登录。由于没有“重叠url”/“虚拟url”,我可以在第一次手动登录时保存cookies,然后每隔一次加载cookies,因此我不知道如何修复此问题。这是我保存和加载cookies的代码 def save_cookies(self): self.browser.get("http://www

我正忙着为某个网站创建一个自动化工具,但似乎找不到在两次不同运行之间存储cookie的选项。主要的问题是,该网站由和组成,每个其他url只是被重定向到其中一个,这取决于您是否登录。由于没有“重叠url”/“虚拟url”,我可以在第一次手动登录时保存cookies,然后每隔一次加载cookies,因此我不知道如何修复此问题。这是我保存和加载cookies的代码

    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()
如上所述,中讨论的查找公共虚拟url的解决方案并不是真正的解决方案

像这样的解决方案也不是一个选项,因为保存和加载cookie的登录前后没有相同的url