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

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

我的以为这种功能很是有用,可是官方竟然没有提供这种功能的API,苦苦搜搜,在网上找了两个java版的http://blog.csdn.net/wwwqjpcom/article/details/51232302 和 http://woxiangbo.iteye.com/blog/2372683

看了下源码其实java和python的驱动原理过程都很是类似。python

打开一个Chrome会话:web

from selenium import webdriver

driver = webdriver.Chrome()

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

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

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

二、建立一个命令执行器。用来向代理发送操做命令;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值