어떻게 주는 오류 파일 geckodriver.exe 가에 의해 사용되는 다른 프로세스를 사용하여 파이어 폭스와 셀레늄 C#

0

질문

나는 실행하려고 시험에서는 Chrome 및 Firefox 셀레늄을 사용하여 c#. 문제를 설치할 때 셀레늄이 함유되어 있습니다.WebDriver.GeckoDriver 를 실행할 수 있는 테스트 파이어 폭스 브라우저에서 그것을 나누기 내 코드와 나를 실행할 수 없는 테스트에서 크롬 또는 Firefox. 어떤 생각이 있으십니까?

나는 설치

  • 셀레늄이 함유되어 있습니다.WebDriver
  • 셀레늄이 함유되어 있습니다.WebDriver.ChromeDriver
  • 셀레늄이 함유되어 있습니다.어 있습니다.WebDriver
  • 셀레늄이 함유되어 있습니다.WebDriver.GeckoDriver

오류:

The file geckodriver.exe is being used by another process   

다른 오류가:

The file is locked by geckodriver

코드 시험:

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

최고의 응답

1

이 오류 메시지가...

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

The file is locked by geckodriver

...의미가 있다는 잔류 GeckoDriver 프로세스의 테스트 실행을 차지하는 시스템 메모리입니다.

지 않는 사람들을 매달려 GeckoDriver 프로세스가 제거된 프로그램을 수 없는 것을 새로 시작 GeckoDriver 서비스입니다.

을 죽이는 잔여 프로세스를 사용할 수 있습니다 다음의 코드 블록

  • GetProcessesByName():

    foreach (var process in Process.GetProcessesByName("geckodriver"))
    {
        process.Kill();
    }
    
  • Process.GetProcesses() 필터링으로 필요한 프로세스:

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

는 이상적인 솔루션

이상적으로 제거하는이 중복 프로세스는 항상 invoke driver.quit()tearDown(){} 메서드를 자동으로 닫을 수 있&을 파괴 WebDriver웹 클라이언트 인스턴스가 정상적입니다.


References

당신은 몇 가지를 찾을 수 있습의 관련된 상세한 토론에서는:

2021-11-23 05:23:33

어디에서 나의 코드를 사용해야 하는 이 방법은?
Yorda

@Yorda 확인 추가 정보 있습니다.
DebanjanB

나는이 해체에서 내 코드,하지만 댓글을 달았습니다. 나는 선택을 취소합니다. 감사
Yorda

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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