Jak řešit chybu souboru geckodriver.exe je používán jiným procesem pomocí Firefox a Selen C#

0

Otázka

Snažím se spustit můj test v Chrome a Firefox pomocí selen c#. Problém je, že při instalaci Selen.WebDriver.GeckoDriver být schopen spustit test na prohlížeči Firefox a láme mi kód a já nejsem schopen spustit test v chrome nebo Firefox. Nějaký nápad?

Nainstaloval jsem

  • Selen.WebDriver
  • Selen.WebDriver.ChromeDriver
  • Selen.Firefox.WebDriver
  • Selen.WebDriver.GeckoDriver

Chyba:

The file geckodriver.exe is being used by another process   

Další chyba:

The file is locked by geckodriver

Kód zkoušky:

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

Nejlepší odpověď

1

Tato chybová zpráva se...

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

a

The file is locked by geckodriver

...znamená, že jsou tam zbytkové GeckoDriver procesů z předchozího testu, provedení zabírá paměti vašeho systému.

Pokud tyto houpající GeckoDriver procesy jsou odstraněny, váš program by mohl být schopen zahájit nový GeckoDriver služby.

Zabít zbytkové procesy, můžete použít následující blok kódu:

  • Pomocí GetProcessesByName():

    foreach (var process in Process.GetProcessesByName("geckodriver"))
    {
        process.Kill();
    }
    
  • Pomocí Process.GetProcesses() filtrování požadovaných procesů:

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

Ideální Řešení

V ideálním případě, jak se zbavit tohoto redundantní proces vždy vyvolat driver.quit() v rámci tearDown(){} metoda zavřít a zničit WebDriver a Webového Klienta případech elegantně.


Odkazy

Můžete najít pár příslušné podrobné diskuse v:

2021-11-23 05:23:33

Kde v mém kódu bych měl použít tuto Metodu?
Yorda

@Yorda Zkontrolujte přidány podrobnosti a odkazy.
DebanjanB

Mám teardown v mém kódu, ale byl připomínkován. Budu zrušte zaškrtnutí políčka. Díky
Yorda

V jiných jazycích

Tato stránka je v jiných jazycích

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