Selenium控制已打开的IE浏览器


控制已打开IE浏览器窗口的方法很难找,这里给出一个方案。

1、重写Remote

ReuseIe.py

from selenium.webdriver import Remote
from selenium.webdriver.ie import options
from selenium.common.exceptions import InvalidArgumentException
class ReuseIe(Remote):	
	def __init__(self,command_executor,session_id):
		self.r_session_id=session_id
		Remote.__init__(self, command_executor=command_executor,desired_capabilities={})
		
	def start_session(self, desired_capabilities, browser_profile=None):		
		capabilities = {'desiredCapabilities':{}, 'requiredCapabilities':{}}
		for k, v in desired_capabilities.items():
			if k not in ('desiredCapabilities', 'requiredCapabilities'):
				capabilities['desiredCapabilities'][k] = v
			else:
				capabilities[k].update(v)
		if browser_profile:
			capabilities['desiredCapabilities']['firefox_profile'] = browser_profile.encoded			

		self.session_id =self.r_session_id
		self.capabilities = options.Options().to_capabilities()       
		self.w3c = False

2、创建Session

先运行此程序打开IE浏览器,保存浏览器的Session等相关信息。

CreateSession.py

from selenium import webdriver
import sys
sys.path.append("..")
from ReuseIe import *
import configparser

driver=webdriver.Ie()
url=driver.command_executor._url
session_id=driver.session_id
print(driver.session_id)
print(driver.command_executor._url)

config=configparser.ConfigParser()
config.add_section("IE")
config.set("IE","url",url)
config.set("IE","session_id",session_id)

with open("session.ini","w+") as f:
	config.write(f)
f.close()	


3、控制已打开的IE浏览器窗口

根据第2步保存的Session,接管已打开的IE浏览器。

from selenium import webdriver
import sys
sys.path.append("..")
from ReuseIe import *
import configparser
config=configparser.ConfigParser()
config.read("session.ini",encoding="utf-8")
url=config.get("IE","url")
session_id=config.get("IE","session_id")
print(session_id)
print(url)

driver=ReuseIe(url,session_id)
driver.get("https://www.baidu.com")
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值