更改现有 Web 驱动程序中的 ChromeOptions
- 2025-02-18 09:23:00
- admin 原创
- 38
问题描述:
场景:需要将文件从 Web 层次结构下载到同一层次结构下的本地驱动器。
Web 层次结构示例:
Parent 1:
Child 1:
*File 1
Child 2:
*File 2
下载文件 1 时,它应存储在路径 1 - “C:\....\Downloads\Parent 1\Child 1\”
下载文件 2 时,它应存储在路径 2 - “C:\....\Downloads\Parent 1\Child 2\”
问题:
当我在 setUp() 中首次初始化 webdriver 并下载“文件 1”时,在 chrome webdriver 中保留“C:....\Downloads\Parent 1\Child 1\”下载路径,它会下载到预期文件夹中。但是,当我在 chrome webdriver 中设置下一个“C:....\Downloads\Parent 1\Child 2\”下载路径以下载其中的文件 2 时,它会打开另一个 chrome 浏览器,因为我正在使用另一个 webdriver 设置路径 2。
所需解决方案:
我想使用现有的 webdriver 来设置不同的 chrome 下载路径或您能想到的任何其他解决方法。
当前代码:
def setUp(self):
browser = webdriver.Chrome(chromedriver_path, option_with_path_1_set)
def test_downloadFiles(self):
*code to download first file*
driver = webdriver.Chrome(chromedriver_path, option_with_path_2_set)
*code to download second file*
def tearDown(self):
browser.quit()
如果您需要任何其他信息,请告诉我。
提前致谢!
解决方案 1:
当您通过ChromeOptions配置ChromeDriver实例以启动新的Chrome 浏览器时,该配置将被嵌入到chromedriver可执行文件中,该文件将在WebDriver的整个生命周期内持续存在并且不可编辑。
即使您能够从启动的浏览会话中提取ChromeDriver和ChromeSession属性(例如会话 ID、Cookie*和其他会话属性),您仍然无法更改ChromeDriver*的这些属性。
一种更简洁的方法是调用driver.quit()
方法tearDown(){}
来正常关闭和销毁ChromeDriver和Chrome 浏览器实例,然后使用新的配置集生成一组新的ChromeDriver和Chrome 浏览器实例。
总结
您可以在以下位置找到几个相关的讨论:
如何在同一会话中将 selenium webdriver 从无头模式设置为正常模式?
手动登录后如何使 Chrome Headless 生效
- 2025年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)