【问题标题】:Change ChromeOptions in an existing webdriver更改现有网络驱动程序中的 ChromeOptions
【发布时间】:2022-01-25 14:01:53
【问题描述】:

场景:需要从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\”下载路径并下载“文件 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()

如果您需要任何其他信息,请告诉我。

提前致谢!

【问题讨论】:

标签: python selenium google-chrome selenium-chromedriver chrome-options


【解决方案1】:

当您通过 ChromeOptions 配置 ChromeDriver 的实例以启动新的 Chrome 浏览器 时,配置会烘焙 进入 chromedriver 可执行文件,该可执行文件将在 WebDriver 的生命周期内持续存在并保持不可编辑

即使您能够提取 ChromeDriverChromeSession 属性,例如会话 IDCookies 和发起的浏览会话中的其他会话属性仍然无法更改 的这些属性Chrome 驱动程序

更简洁的方法是在 tearDown(){} 方法中调用 driver.quit()关闭销毁 ChromeDriver em> 和 Chrome 浏览器 实例,然后使用新的配置集跨越一组新的 ChromeDriverChrome 浏览器 实例。


tl;博士

您可以在以下位置找到一些相关讨论:

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 2014-07-13
    • 2022-01-21
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多