在清理临时文件的同时关闭Selenium而不关闭浏览器

MxL*_*evs 5 java selenium

我有一组使用Selenium WebDriver用Java编写的类,用于在许多不同的网站上自动执行各种任务,例如登录和获取数据。

有时我们需要自己访问该页面以查找某些内容,而手动登录的过程相当……嗯,很无聊,而且很浪费时间。

我想起了,因为我们已经有了登录宏,为什么我们不让硒处理它。

我想打开一个新的浏览器,执行登录过程,然后关闭硒。然后,用户将恢复他们想要在站点上执行的所有任务。

我注意到,如果我没有正确关闭Selenium,它将在temp文件夹中保留一个匿名配置文件。加班之前,在我意识到这件事发生之前,我已经积累了一些演出的资料。原来是因为我没有使用close和正确关闭硒quit

但是,如果使用这些方法,浏览器将被关闭。刚才我测试如下

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
driver.close()  // shuts down the browser
Run Code Online (Sandbox Code Playgroud)

然后我尝试

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
driver.quit() // shuts down the browser
Run Code Online (Sandbox Code Playgroud)

我有办法在清理所有这些匿名配置文件的同时关闭Selenium而不关闭浏览器吗?我基本上将其用作宏,除了通过管理所有不同宏的Java应用程序以编程方式启动它之外。

小智 0

您可以退出程序,同时保持浏览器完好无损。假设您有一个控制台应用程序:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
System.exit(0);
Run Code Online (Sandbox Code Playgroud)

  • 但这不会关闭驱动程序资源 - geckodriver.exe 仍保持运行。每次运行该程序时,都会启动另一个 geckodriver.exe 进程。 (2认同)