场景:需要将文件从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可编辑。
即使您能够从启动的浏览会话中提取ChromeDriver和ChromeSession属性,例如会话ID、Cookie和其他会话属性,您仍然无法更改ChromeDriver的这些属性。
一种更干净的方法是在tearDown(){}
方法中调用driver.quit()
,以关闭并销毁ChromeDriver和Chrome浏览器实例,然后使用新的一组配置跨越一组新的ChromeDriver和Chrome浏览器实例。
tl;dr
你可以在中找到一些相关的讨论
- 如何在同一会话中将selenium网络驱动程序从无头模式设置为正常模式
- 手动登录后如何使Chrome无头