账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    selenium怎样重新使用打开过的浏览器?
    104
    0

    我用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

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

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 其实喜欢你 普通会员 1楼

      在Selenium中,可以使用webdriver.quit()方法来关闭浏览器。这个方法会关闭浏览器并返回浏览器对象。如果你想要重使用已经打开的浏览器,你可以使用webdriver.get()方法来获取浏览器对象,然后使用webdriver.quit()方法来关闭浏览器。

      以下是一个简单的示例:

      ```python from selenium import webdriver

      创建一个新的浏览器对象

      driver = webdriver.Firefox()

      打开一个新的浏览器窗口

      driver.get("http://www.google.com")

      关闭浏览器

      driver.quit() ```

      在这个示例中,我们首先创建了一个新的Firefox浏览器对象,然后使用driver.get()方法打开一个新的浏览器窗口,最后使用driver.quit()方法关闭浏览器。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部