Come risolvere l'errore Il file geckodriver.exe è utilizzato da un altro processo, utilizzando Firefox e Selenio C#

0

Domanda

Sto cercando di eseguire il mio test con Chrome e Firefox usando il selenio c#. Il problema è che quando installare il Selenio.WebDriver.GeckoDriver per essere in grado di eseguire il test su Firefox mi si spezza il codice e io non sono in grado di eseguire il test in chrome o Firefox. Qualche idea?

Ho installato

  • Selenio.WebDriver
  • Selenio.WebDriver.ChromeDriver
  • Selenio.Firefox.WebDriver
  • Selenio.WebDriver.GeckoDriver

Errore:

The file geckodriver.exe is being used by another process   

Un altro errore:

The file is locked by geckodriver

Codice di prove:

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

Migliore risposta

1

Questo messaggio di errore...

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

e

The file is locked by geckodriver

...implica che ci siano residui di GeckoDriver processi di precedente l'esecuzione di test di occupare memoria di sistema.

A meno che quelli penzoloni GeckoDriver processi vengono rimossi il programma sarebbe in grado di avviare un nuovo GeckoDriver servizio.

Per uccidere i residui di processi è possibile utilizzare il seguente blocco di codice:

  • Utilizzando GetProcessesByName():

    foreach (var process in Process.GetProcessesByName("geckodriver"))
    {
        process.Kill();
    }
    
  • Utilizzando Process.GetProcesses() il filtraggio dei processi necessari:

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

Soluzione Ideale

Ideale per sbarazzarsi di questo processo ridondante sempre invocare driver.quit() all'interno tearDown(){} metodo per chiudere e distruggere i WebDriver e Web Client istanze di grazia.


Riferimenti

È possibile trovare un paio di discussioni dettagliate in:

2021-11-23 05:23:33

Dove nel mio codice devo usare questo Metodo?
Yorda

@Yorda Controllare l'aggiunta di particolari e di riferimenti.
DebanjanB

Ho teardown nel mio codice, ma è stato commentato. Io deseleziona che. Grazie
Yorda

In altre lingue

Questa pagina è in altre lingue

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