Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

Microsoft Edge (Chromium)을 대상으로 한 Selenium WebDriver 사용법

혹시나 있을까 싶어서 검색했더니 ^^ 나오는군요.

Microsoft WebDriver - Microsoft Edge (Chromium)
; https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

현재 자신의 컴퓨터에 설치된 "Microsoft Edge (Chromium)" 버전을 확인 후 그에 맞는 edgedriver 파일을 다운로드하면 됩니다. 가령 제 경우에는 "77.0.197.0" 버전이기 때문에 다음의 파일을 사용했습니다.

edgedriver_win64.zip
; https://msedgedriver.azureedge.net/77.0.197.0/edgedriver_win64.zip

C# 프로젝트에서 사용하는 방법은 간단합니다. 우선, NuGet으로부터 패키지 2개를 설치하고,

Install-Package Selenium.WebDriver
Install-Package Selenium.Chrome.WebDriver

여느 ChromeDriver 사용법이랑 동일하지만, 단지 초기화 부분에만 "Microsoft Edge (Chromium)" 제품을 위한 배려만 추가하면 됩니다.

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string platform = (IntPtr.Size == 8) ? "x64" : "x86";
        string path = Path.Combine(Path.GetDirectoryName(typeof(Program).Assembly.Location), "lib", platform);

        ChromeOptions co = new ChromeOptions();
        co.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe";

        ChromeDriverService cds = ChromeDriverService.CreateDefaultService(path, "msedgedriver.exe");

        using (IWebDriver driver = new ChromeDriver(cds, co))
        {
            driver.Url = "https://www.sysnet.pe.kr";

            {
                IWebElement div = driver.FindElement(By.ClassName("leftCommentArea"));
                foreach (var item in div.FindElements(By.XPath(".//a")))
                {
                    Console.WriteLine(item.Text);
                }
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadLine();
        }
    }
}

(이 글의 예제 코드는 github - ChromiumEdgeSeleniumSample에서 제공합니다.)




[파이썬의 경우]

selenium 모듈 설치 후,

pip install -U selenium

아래의 사이트에서 이번엔 Chrome WebDriver를 다운로드하고,

Chrome - Web Driver 다운로드
; https://sites.google.com/a/chromium.org/chromedriver/downloads

압축을 해제한 chromedriver.exe 파일을 "c:/temp" 디렉터리(또는 원하는 경로)에 복사하고, 다음과 같이 코딩합니다.

from selenium import webdriver

options = webdriver.ChromeOptions()
# options.add_argument('headless')
options.add_argument('window-size=1920x1080')
driver = webdriver.Chrome('d:/Settings/selenium/chromedriver', options=options)

driver.implicitly_wait(3)
driver.get('https://www.naver.com')

# driver.quit()




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 8/15/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2021-01-02 08시12분
microsoft/playwright
 - Node.js library to automate Chromium, Firefox and WebKit with a single API
; https://github.com/microsoft/playwright

microsoft/playwright-dotnet
; https://github.com/microsoft/playwright-dotnet

using System.Threading.Tasks;
using Microsoft.Playwright;

class Program
{
    public static async Task Main()
    {
        using var playwright = await Playwright.CreateAsync();
        await using var browser = await playwright.Chromium.LaunchAsync(new() { Headless = false });
        var page = await browser.NewPageAsync();
        await page.GotoAsync("https://playwright.dev/dotnet");
        await page.ScreenshotAsync(new() { Path = "screenshot.png" });
    }
}

-----------------------------------

Say Goodbye to WebDriver: Modern Alternatives for Browser Automation – Part 1
; https://dev.to/serhii_korol_ab7776c50dba/say-goodbye-to-webdriver-modern-alternatives-for-browser-automation-part-1-4nna

-----------------------------------

Turn LLM-Generated HTML into Images Using PuppeteerSharp with .NET
; https://dev.to/auyeungdavid_2847435260/turn-llm-generated-html-into-images-using-puppeteersharp-with-net-5hh8

이름에 LLM이 들어가 있지만, 단지 HTML to Image 기능을 제공하는 PuppeteerSharp 라이브러리 설명입니다. ^^
정성태

... [181]  182  183  184  185  186  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
589정성태6/17/200826216.NET Framework: 102. COM 개체의 이벤트를 구독하는 코드 제작 [1]
588정성태6/13/200828428VC++: 35. COM 이벤트에서 반환값을 가진 콜백 정의
587정성태6/10/200832853VS.NET IDE: 56. C#에서 아쉬운 __DATE__, __TIME__ 매크로 [2]
586정성태6/4/200830564오류 유형: 56. WPF 디자이너 - The string was not recognized as a valid DateTime [2]
585정성태6/4/200838581.NET Framework: 101. WPF - ActiveX 컨트롤 호스팅하는 방법 [2]
582정성태5/16/200830678오류 유형: 55. Windowless ActiveX controls are not supported
580정성태4/24/200829598VC++: 34. 64비트 윈도우즈에서의 이벤트 후킹
579정성태4/24/200829288VC++: 33. 변환 후의 RGS 파일 내용을 얻는 방법
577정성태4/16/200830335.NET Framework: 100. XML Serializer를 이용한 값 복사 [5]
575정성태4/7/200827311오류 유형: 54. TFS Source Control - 명령을 사용할 수 없음 [2]
574정성태3/31/200825861오류 유형: 53. TFS 연결 오류 - The workspace [...] exists on computer [...]
573정성태3/25/200830270Windows: 31. TS Web Access와 UAC [1]
570정성태3/17/200828902오류 유형: 52. TFS 연결 오류 - TF31001 [2]
569정성태3/16/200829818Team Foundation Server: 24. TFS 2008로 마이그레이션 (2) [2]
566정성태2/28/200831238.NET Framework: 99. AppDomain.GetEntryAssembly()를 우회하는 방법파일 다운로드1
564정성태2/16/200830612Windows: 30. TS Web Access + Vista SP1 [2]
563정성태2/16/200830601오류 유형: 51. Vista(UAC) + 웹 프로젝트 디버깅: System.UnauthorizedAccessException
562정성태2/12/200834206Windows: 29. Windows Server 2008 설치 [4]
561정성태1/10/200827663오류 유형: 50. IE 7 + 잘못된 HTC 파일 경로 = File not found [5]
559정성태1/1/200833065Windows: 28. Vista에서 끌어다 놓기로 GAC 등록하는 방법 [2]
558정성태1/1/200850081개발 환경 구성: 33. 32bit/64bit OLE DB Provider [1]
557정성태12/22/200728422개발 환경 구성: 32. WSCF와 VS.NET 2008
556정성태12/16/200726475기타: 22. 인기 순위 정리 : 조회수 1000 회 이상
555정성태12/16/200729583기타: 21. 인기 순위 정리 : 조회수 500 ~ 999회 글 목록
554정성태12/16/200733972기타: 20. 인기 순위 정리 : 조회수 250 ~ 499회 글 목록
553정성태12/16/200734380기타: 19. 인기 순위 정리 : 조회수 100 ~ 249회 글 목록
... [181]  182  183  184  185  186  187  188  189  190  191  192  193  194  195  ...