Python Selenium使浏览器保持打开状态,以接收新数据

时间:2019-04-27 19:33:22

标签: python selenium webserver

我正在尝试保持Selenium浏览器打开并等待传递新信息。我正在使用网络服务器将url参数发送到我的计算机,这会触发Selenium脚本每次启动新实例。问题是每次访问网站时,我正在访问的网站都要求我登录,并且每10分钟最多只能登录3次。

有没有一种方法可以启动Selenium浏览器,保持实例打开,然后通过Web服务器传递新参数以利用浏览器实例?

1 个答案:

答案 0 :(得分:0)

如果登录会话到期是问题,那么您可以使用cookie:

您可以在登录后使用此功能保存浏览器cookie:

viewWillAppear

稍后,当您要访问已登录的网站时,只需加载网站,注入cookie并重新加载,然后发现自己使用上一个会话登录

这是一个注入cookie的功能:

bgImage.motionEffects.forEach { bgImage.removeMotionEffect($0) }

您要执行的操作是这样:

import logging 

def save_cookies(driver, store_cookies_file):
    cookies = []
    try:
        cookies = driver.get_cookies()
        with open(store_cookies_file, 'w') as file:
            file.write(json.dumps(cookies))
        print('Cookies saved to JSON file')

    except Exception as e:
        print('Could not save cookies to file')
        logging.exception(e)
    return cookies # return the cookies just in case you want to use them without reading from the saved file