selenium怎样重新使用打开过的浏览器?

我用flask写了一个接口。使用这个接口的时候,可以启动selenium访问网页,获取网页的信息。

我希望不用每次访问的时候,都初始化一个driver(这样太浪费时间)。因此我写成了每个请求过来,就打开一个新的窗口,这样就可以不用初始化了。

我在本地运行app.py的时候,可以实现这个功能。但是部署的时候(apache,mod_wsgi,flask)就不行了,每次请求过来,它就重新初始化一个driver。(url不变,多次访问也会实现不初始化driver,只打开新窗口的功能;但是url不同的时候,就不能实现预期的功能。)

我曾想过是不是由于每次访问的时候,都重新运行一次app.py。我对mod_wsgi不是很熟。

然后也试过将driver对象保存在应用上下文和g里面,但是也是不行的。每次请求的g都不一样。

今天我想过用redis,pickle保存driver对象,这个似乎可行。问题是,pickle.dumps(driver)的时候,报错了:
TypeError: can't pickle _thread.lock objects

唉,这个问题困扰我好几天了,有人能帮助一下我吗?

阅读 4.5k
1 个回答

如果是单线程,就把driver设置成全局变量就好了啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏