更改现有网络驱动程序中的 ChromeOptions

Sid*_*rni 6 python selenium google-chrome selenium-chromedriver chrome-options

场景:需要将文件从 Web 层次结构下载到同一层次结构下的本地驱动器。

示例 Web 层次结构:

Parent 1:  
  Child 1:  
    *File 1  
  Child 2:  
    *File 2  
Run Code Online (Sandbox Code Playgroud)

下载文件 1 时,它应该存储在路径 1 - "C:\....\Downloads\Parent 1\Child 1\"

下载文件 2 时,它应该存储在路径 2 - "C:\....\Downloads\Parent 1\Child 2\"

问题

当我在 chrome webdriver 中保留“C:....\Downloads\Parent 1\Child 1\”下载路径,同时在 setUp() 中第一次初始化 webdriver 并下载“File 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()
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Deb*_*anB 12

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

即使您能够从启动的浏览会话中提取ChromeDriverChromeSession属性,例如会话 IDCookie和其他会话属性,您仍然无法更改 ChromeDriver 的这些属性

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


TL; 博士

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


归档时间:

查看次数:

6666 次

最近记录:

6 年,3 月 前