文章目录
1、重写Remote2、创建Session3、控制已打开的IE浏览器窗口控制已打开IE浏览器窗口的方法很难找,这里给出一个方案。1、重写Remote
ReuseIe.py
from selenium.webdriver import Remotefrom selenium.webdriver.ie import optionsfrom mon.exceptions import InvalidArgumentExceptionclass ReuseIe(Remote):def __init__(self,command_executor,session_id):self.r_session_id=session_idRemote.__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] = velse:capabilities[k].update(v)if browser_profile:capabilities['desiredCapabilities']['firefox_profile'] = browser_profile.encodedself.session_id =self.r_session_idself.capabilities = options.Options().to_capabilities() self.w3c = False
2、创建Session
先运行此程序打开IE浏览器,保存浏览器的Session等相关信息。
CreateSession.py
from selenium import webdriverimport syssys.path.append("..")from ReuseIe import *import configparserdriver=webdriver.Ie()url=mand_executor._urlsession_id=driver.session_idprint(driver.session_id)print(mand_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 webdriverimport syssys.path.append("..")from ReuseIe import *import configparserconfig=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("")