Cómo solucionar el error El archivo geckodriver.exe está siendo utilizado por otro proceso utilizando Firefox y Selenio C#

0

Pregunta

Estoy tratando de ejecutar mi prueba en Chrome y Firefox usando el selenio c#. El problema es que cuando instale el Selenio.WebDriver.GeckoDriver para ser capaz de ejecutar la prueba en el navegador Firefox rompe mi código y no soy capaz de ejecutar la prueba en chrome o Firefox. Alguna idea?

He instalado

  • El selenio.WebDriver
  • El selenio.WebDriver.ChromeDriver
  • El selenio.Firefox.WebDriver
  • El selenio.WebDriver.GeckoDriver

Error:

The file geckodriver.exe is being used by another process   

Otro error:

The file is locked by geckodriver

Código de ensayos:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;

    internal class Program
        {
            IWebDriver driver = new ChromeDriver();
            //IWebDriver driver = new FirefoxDriver();
            static void Main(string[] args)
            {
            }
            [SetUp] //method to initialize page with windows maximized. 
            public void Initialize()
            {
                driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(30);
                driver.Navigate().GoToUrl("https://www.demo.bnz.co.nz/client/");
                driver.Manage().Window.Maximize();
                driver.Manage().Cookies.DeleteAllCookies();
            }
public void Payees()
        {
            System.Threading.Thread.Sleep(10000); //verify if page is loaded 
            IWebElement element = driver.FindElement(By.XPath("//*[@id='left']/div[1]/div/button"));//menu            
            element.Click();
            driver.FindElement(By.XPath("//*[@id='left']/div[1]/div/div[3]/section/div[2]/nav[1]/ul/li[3]/a")).Click(); //payes
        }
c# firefox geckodriver selenium
2021-11-23 04:45:24
1

Mejor respuesta

1

Este mensaje de error...

"The file geckodriver.exe is being used by another process

y

The file is locked by geckodriver

...implica que hay residual GeckoDriver procesos de la anterior ejecución de las pruebas de ocupación de la memoria del sistema.

A menos que esos colgantes GeckoDriver procesos se quitan su programa sería incapaz de iniciar una nueva GeckoDriver servicio.

Para matar a los procesos residuales puede utilizar el siguiente bloque de código:

  • El uso de GetProcessesByName():

    foreach (var process in Process.GetProcessesByName("geckodriver"))
    {
        process.Kill();
    }
    
  • El uso de Process.GetProcesses() el filtrado de los procesos necesarios:

    var chromeDriverProcesses = Process.GetProcesses();
        Where(pr => pr.ProcessName == "chromedriver"); // without .exe
    
    foreach (var process in chromeDriverProcesses)
    {
       process.Kill();
    }
    

Solución Ideal

Ideal para deshacerse de este redundantes proceso siempre invocar driver.quit() dentro de tearDown(){} método para cerrar y destruir la WebDriver y el Cliente Web de instancias correctamente.


Referencias

Usted puede encontrar un par de relevantes discusiones detalladas en:

2021-11-23 05:23:33

Donde en mi código debería usar este Método?
Yorda

@Yorda Comprobar el agregado de detalles y referencias.
DebanjanB

He desmontaje en mi código, pero fue comentado. Voy a desmarcar de que. Gracias
Yorda

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................