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



场景:需要将文件从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((&下载"文件1",它在预期的文件夹中下载。但当我在chrome网络驱动程序中设置下一个"C:….\Downloads\Parent 1\Child 2\"下载路径以下载其中的文件2时,它会打开另一个chrome浏览器,因为我正在使用另一个网络驱动程序来设置路径2。

所需解决方案

我想使用现有的网络驱动程序来设置不同的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()

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

提前感谢!

当您通过ChromeOptions配置ChromeDriver的实例以启动新的Chrome浏览器时,配置会被烘焙ChromeDriver可执行文件中,该可执行文件将在WebDriver可编辑。

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

一种更干净的方法是在tearDown(){}方法中调用driver.quit(),以关闭销毁ChromeDriverChrome浏览器实例,然后使用新的一组配置跨越一组新的ChromeDriverChrome浏览器实例。


tl;dr

你可以在中找到一些相关的讨论

  • 如何在同一会话中将selenium网络驱动程序从无头模式设置为正常模式
  • 手动登录后如何使Chrome无头

相关内容

  • 没有找到相关文章

最新更新