Selenium如何调用已激活会话?避免新建窗口与卡顿问题
问题:复用Selenium已登录会话失败,全局driver导致卡顿/线程异常
我正在使用Selenium加载一个已通过InitialCall()完成登录的网站,但无法访问已加载的会话。查到的方案都指向启动新的Selenium WebDriver,但我希望直接调用已处于激活状态的现有driver。
以下是我的实现代码:
chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("user-data-dir=C:\\direcorty\\where driver is stored ") # 存储cookies的目录 driver = webdriver.Chrome(chrome_options=chrome_options) driver.get('mail.websiteurl.com') def initialCall(): # 执行登录流程,之后进入管理员页面 driver.find_element_by_class_name("5oead").get_attribute('innerHTML') # 尝试在此保存会话 with open(path, 'w') as filehandler: json.dump(driver.get_cookies(), filehandler) def callAlreadyLoggedSession(): # chrome_options = webdriver.ChromeOptions() # chrome_options.add_argument("user-data-dir=C:\\direcorty\\where driver is stored ") # 存储cookies的目录 driver.find_element_by_class_name("5oead").get_attribute('innerHTML') # with open(path, 'r') as cookiesfile: # cookies = json.load(cookiesfile) # for cookie in cookies: # print(cookie) # driver.add_cookie(cookie)
上述代码会加载新会话并关闭原有窗口,我希望直接访问现有会话而不新建窗口。
更新
我已做出修改,但出现了新问题:将Selenium driver从函数内部移至全局作用域后,系统出现卡顿且无法使用线程。
内容的提问来源于stack exchange,提问作者jarhead
相关产品推荐
相关产品推荐

