Selenium의 ChromeDriver에서 Chromium 버전 Microsoft Edge를 실행합니다.

소개



브라우저 자동화 테스트의 사실 표준입니다 Selenium그리고 공식적으로 출시되었습니다 Chromium版MicrosoftEdge과연 ChromeDriver 를 사용하여 Chromium 버전 Microsoft Edge를 조작할 수 있습니까?

※ 움직일 수 있었을 때의 감동은 생략
2021/11/07 Selenium4가 공식 출시되었으므로 새로 기사를 썼습니다.
이 기사를 참조하십시오 :
【정식판】Selenium4의 EdgeDriver로 Chromium판 Microsoft Edge를 움직인다(IE 모드도 할 수 있어♪)

2020/01/23 여러가 잘못되었으므로 수정했습니다
2020/06/14 다양한 상황이 바뀌었으므로 새롭게 기사를 썼습니다
이 기사를 참조하십시오 :
Selenium4의 EdgeDriver에서 Chromium 버전 Microsoft Edge를 실행합니다.
MsEdgev80 이후에 이 기사의 방법을 채용하면, 다음과 같은 예외가 발생하게 되어 버렸습니다. .

System.InvalidOperationException: session not created: No matching capabilities found (SessionNotCreated)

했던 일



Chromium용 MicrosoftEdge 얻기



여기 에서 다운로드 및 설치

msedgedriver.exe 얻기



여기 에서 다운로드
이때 Edge 버전에 해당하는 driver를 가져와야 합니다.


NuGet


Selenium 시스템의 모듈 참조


출처



포인트는 3개
  • ChromeDriver 클래스 사용
  • ChromeDriverService 에서 얻은 msedgedriver.exe를 지정합니다
  • ChromeOptions.BinaryLocation 에서, msedge.exe 를 지정한다
  • // モジュールと同階層に driver.exe を配置した場合
    var service = ChromeDriverService.CreateDefaultService(".", "msedgedriver.exe");
    var options = new ChromeOptions
    {
        // MsEdgeがインストールされたパスを指定
        BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
    };
    
    // ヘッドレスモードも可能!
    //options.AddArgument("--headless");
    
    using (var driver = new ChromeDriver(service, options))
    {
        var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 5));
    
        driver.Navigate().GoToUrl("https://www.google.com");
    
        var q = driver.FindElementByName("q");
        q.SendKeys("Chromium");
        q.Submit();
    
        wait.Until(ExpectedConditions.TitleIs("Chromium - Google 検索"));
        ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile($"{DateTime.Now.ToString("yyyyMMddHHmmss")}.png");
    }
    
    

    헤드리스에도 대응!



    옵션 지정에 의한 헤드리스 모드에도 대응하고 있는 것을 확인했습니다!
    options.AddArgument("--headless");
    

    스크린샷이 이런 느낌으로 획득됩니다!


    결론


  • BinaryLocation 를 직접 지정할 필요가 있으므로 환경 마다 변경할 필요가 나올 가능성이 있다.
  • Selenium4 이후, BinaryLocation

  • 헤드리스 모드가 지원되는 것은 뜨겁다.
  • driverNuGet 배포해 주었으면 한다.
  • NuGet 에서 Selenium.WebDriver.MSEdgeDriver 가 배포 되었습니다!

  • 좋은 웹페이지 즐겨찾기