有没有办法,对于使用selenium的python程序的不同运行,我保留我打开并使用我的凭据登录的浏览器,打开并在以后的运行中使用?
我正在调试代码.每次我需要使用我的凭据登录时在浏览器上.目前,每次我停止代码时,Web浏览器都会关闭.有没有办法保留我已经打开并登录的浏览器副本并将其用于我以后的调试,以便每次我都不需要再次输入我的登录凭据?
我打开浏览器的代码如下所示:
driver = webdriver.Chrome(executable_path="/the_path/chromedriver",chrome_options=chrome_options)
driver.get(url)
编辑:
实际上,该网站要求认证的方式如下:
首先,它要求输入用户名,然后我需要按下继续按钮,然后它要求输入密码,输入密码后,它会向我的手机发送短信,我需要在进入预定页面之前输入.
最佳答案
好吧,因为这个问题被赞成,但我的国旗作为重复的问题未被接受,我将在这里发布same exact answer I already posted for a similar question:
您可以使用pickle
将cookie保存为文本文件,并在以下情况下加载:
def save_cookie(driver,path):
with open(path,'wb') as filehandler:
pickle.dump(driver.get_cookies(),filehandler)
def load_cookie(driver,path):
with open(path,'rb') as cookiesfile:
cookies = pickle.load(cookiesfile)
for cookie in cookies:
driver.add_cookie(cookie)
使用如下脚本:
from selenium import webdriver
from afile import save_cookie
driver = webdriver.Chrome()
driver.get('http://website.internets')
foo = input()
save_cookie(driver,'/tmp/cookie')
你能做的是:
>运行此脚本
>在(selenium的)浏览器上,转到网站,登录
>返回终端,输入任何输入的内容.
>在/ tmp / cookie享受您的cookie文件.您现在可以将其复制到代码仓库中,并在需要时将其打包到您的应用程序中.
那么,现在,在您的主应用程序代码中:
from afile import load_cookie
driver = webdriver.Chrome()
load_cookie(driver,'path/to/cookie')
你现在已经登录了.