重用之前打开的 selenium 窗口

Ayu*_*ara 6 selenium browser-automation python-3.x selenium-chromedriver selenium-webdriver

我一直在使用 Selenium Python 库测试各种自动化任务。在这个过程中我遇到了一个非常严重的问题。这是由于网络连接不良造成的延迟。所有任务的起始步骤都是相同的,即 - 打开浏览器 - 转到网站 - 登录 - 登录后打开特定链接

这些任务需要很长时间,因此我希望找到一种方法,可以重用已经打开的会话并继续在该窗口上进行测试,而不是每次运行脚本时打开新的浏览器窗口。

这是我迄今为止测试过的:

原始文件示例:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)

driver = webdriver.Chrome(r'C:\testDir\chromedriver_win32\chromedriver.exe', chrome_options=chrome_options)

url = driver.command_executor._url      
session_id = driver.session_id          

print("URL:",url,"SESSION ID:",session_id)

driver.get('http://www.facebook.com')

username = "---"
password = "---"

driver.find_element_by_name('email').send_keys(username)
driver.find_element_by_name('pass').send_keys(password)
driver.find_element_by_name('login').click()    
# time.sleep(2)
driver.maximize_window()
time.sleep(2)
driver.find_elements_by_name('q').send_keys('Ayush Mandowara')  
# element = wait.until(EC.presence_of_element_located((By.xpath, '//input[@placeholder="Search"]'))
driver.find_element_by_xpath('//input[@placeholder="Search"]').send_keys('Ayush Mandowara' + Keys.RETURN)
time.sleep(4)

driver.find_element_by_xpath('//div[contains(text(), "Ayush Mandowara")]').click()
time.sleep(3)
driver.find_element_by_class_name('coverBorder').click()
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)

连接文件:

from connectingToPrev import url, session_id    

driver = webdriver.Remote(command_executor=url,desired_capabilities={})
driver.session_id = session_id

driver.get("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

此连接文件遵循上一个窗口中已发生的所有操作,我期望它连接到上一个窗口或使用正确的凭据打开最后一个链接

Python 的回答值得赞赏!