Selenium - 使用当前Chrome实例中的会话

时间:2018-05-15 17:45:41

标签: python selenium

我正在尝试为网络应用自动化一些表单填充。用户必须登录该应用程序,然后开始填写表单页面。我有以下使用Selenium的Python脚本,它可以打开我的应用程序窗口:

from selenium import webdriver

driver = webdriver.Ie("C:\\Python\\Selenium\\Chrome\\chromedriver.exe")
driver.add_cookie()
driver.set_page_load_timeout(30)
driver.get("myurl/formpages")
driver.maximize_window()

driver.quit()

但是,当Selenium启动Chrome窗口时,用户未登录。我希望每次都不需要登录。

在另一个Chrome窗口中,我已经以我的测试用户身份登录。因此,每当我访问Chrome窗口上的网址时,我都已登录,无需再次登录。

有没有办法将这些数据传递到我的Selenium脚本中,以便它使用我现有Chrome实例上当前的会话,因此无需通过脚本登录?

2 个答案:

答案 0 :(得分:1)

从历史上看,遗憾的是这是不可能的(当我意识到它涉及的工作和每个浏览器的努力时,我的协议令人沮丧!)。

我之前编写过代码,从CSV中获取用户名和密码的变量。这很糟糕,因为它是纯文本的,但如果您愿意,也可以在代码中处理这些信息。

所以回顾一下,有一些平庸的解决方案,但在硒中没有本地方法来解决这个问题:(

答案 1 :(得分:0)

默认情况下,Selenium会在您每次启动新实例时创建一个临时的chrome配置文件,并在您退出该实例后删除该配置文件。如果您将selenium驱动程序中的chrome选项更改为使用自定义chrome配置文件,并允许该配置文件保存cookie,则无需每次输入登录详细信息等就可以登录。