python接管已经打开的浏览器_Python Webdriver 重新使用已经打开的浏览器实例

因为Webdriver每次实例化都会新开一个全新的浏览器会话,在有些情况下需要复用之前打开未关闭的会话。比如爬虫,希望结束脚本时,让浏览器处于空闲状态。当脚本重新运行时,它将继续使用这个会话工作。还就是在做自动化测试时,前面做了一大推操作,但是由于程序出错,重启时不用再继续前面复杂的操作。

个人觉得这种功能非常有用,但是官方居然没有提供这种功能的API,苦苦搜搜,在网上找了两个java版的http://blog.csdn.net/wwwqjpcom/article/details/51232302 和 http://woxiangbo.iteye.com/blog/2372683

看了下源码其实java和python的驱动原理过程都非常相似。

打开一个Chrome会话:

from selenium import webdriver

driver = webdriver.Chrome()

运行上面的脚本,它将启动浏览器并退出。因为没有调用quit()方法,所以浏览器会话仍会存在。但是代码里创建的driver对象已经不在了,理论上不能用脚本控制这个浏览器。它将变成一个僵尸浏览器,只能手动杀死它。

通过webdriver启动一个浏览器会话大概会有这样三个阶段:

1、启动的浏览器驱动代理(hromedriver,Firefox的驱动程序,等等);

2、创建一个命令执行器。用来向代理发送操作命令;

3、使用代理建立一个新的浏览器会话,该代理将与浏览器进行通信。用sessionId来标识会话。

因此只要拿到阶段2中的执行器和阶段3中的sessionID就能恢复上次的会话。这两个有api可以直接获取:

from selenium

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值