Ako riešiť chyba súboru geckodriver.exe je používaný iným procesom, pomocou Firefox a Selén C#

0

Otázka

Snažím sa bežať môj test v prehliadači Chrome a Firefox pomocou selénu c#. Problém je, že pri inštalácii Selénu.Plošinová.GeckoDriver, aby bolo možné spustiť test na prehliadač Firefox láme mi číslo a ja nie som schopná spustiť test v chrome alebo Firefox. Akýkoľvek nápad?

Nainstaloval som

  • Selén.Plošinová
  • Selén.Plošinová.ChromeDriver
  • Selén.Firefox.Plošinová
  • Selén.Plošinová.GeckoDriver

Chyba:

The file geckodriver.exe is being used by another process   

Ďalšia chyba:

The file is locked by geckodriver

Kód skúš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

Najlepšiu odpoveď

1

Toto chybové hlásenie sa...

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

a

The file is locked by geckodriver

...znamená, že existuje zostatková GeckoDriver procesov predchádzajúceho testu vykonanie zaberať váš systém pamäti.

Pokiaľ tie visiace GeckoDriver procesy sú odstránené váš program by byť schopný začať nový GeckoDriver služby.

Zabiť zostatková procesy, môžete použiť nasledujúci kód blok:

  • Pomocou GetProcessesByName():

    foreach (var process in Process.GetProcessesByName("geckodriver"))
    {
        process.Kill();
    }
    
  • Pomocou Process.GetProcesses() filtrovať požadované procesy:

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

Ideálne Riešenie

V ideálnom prípade, ako sa zbaviť tohto zbytočné procesu vždy uplatniť driver.quit() v rámci tearDown(){} metóda close & zničiť Plošinová a Webový Klient prípadoch elegantne.


Odkazy

Môžete nájsť pár príslušné podrobné diskusie:

2021-11-23 05:23:33

Kde v mojom kóde by som mal použiť túto Metódu?
Yorda

@Yorda Skontrolujte pridané informácie a odkazy.
DebanjanB

Mám teardown v mojom kóde, ale bol to komentoval. Budem začiarknutie, že. Vďaka
Yorda

V iných jazykoch

Táto stránka je v iných jazykoch

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