有没有一种方法可以让使用 selenium 的 python 程序的不同运行保持我已打开并使用凭据登录的浏览器,在以后的运行中打开并使用?
我正在调试一段代码。每次我需要使用我的凭据登录时在浏览器上。目前,每次我停止代码时,网络浏览器都会关闭。有没有办法保留我已经打开并登录的浏览器副本,并将其用于以后的调试,这样每次我都不需要再次输入登录凭据?
我打开浏览器的代码如下所示:
driver = webdriver.Chrome(executable_path="/the_path/chromedriver", chrome_options=chrome_options)
driver.get(url)
EDIT:
实际上,该网站要求验证的方式如下:
首先,它要求输入用户名,然后我需要按继续按钮,然后它要求输入密码,输入密码后,它会向我的手机发送一条短信,我需要在进入预期页面之前输入它。
好吧,由于这个问题已被投票,但我的标记为重复问题未被接受,我将在这里发布我已经针对类似问题发布了相同的答案 https://stackoverflow.com/questions/45417335/python-use-cookie-to-login-with-selenium#answer-45419194:
您可以使用pickle https://docs.python.org/2/library/pickle.html将 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的)浏览器上,转到网站,登录
- 返回终端,输入任何内容并按 Enter 键。
- 享受您的 cookie 文件:
/tmp/cookie
。现在,您可以将其复制到代码存储库中,并根据需要将其打包到您的应用程序中。
所以,现在,在您的主应用程序代码中:
from afile import load_cookie
driver = webdriver.Chrome()
load_cookie(driver, 'path/to/cookie')
现在您已登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)