본문 바로가기
프로그래밍/C#

[C#][Selenium] 설치하기, 코스트코 로그인 만들기

by JR2 2021. 3. 13.

C#으로 셀레니움을 설치,

개발환경을 테스트 해보겠다.

 

크게 3가지를 해야한다.

 

1. Visual Studio 설치

2. Selenium 라이브러리 설치

3. 컴파일 및 실행

 

우선 1번이다.

나는 Visual Studio 2019 Community를 사용하고 있다.

이 버전은 무료이다.

 

visualstudio.microsoft.com/ko/vs/

 

Visual Studio 2019 | 무료 다운로드

Visual Studio에서 코드 완성, 디버깅, 테스트, Git 관리, 클라우드 배포를 사용하여 코드를 작성할 수 있습니다. 지금 Community를 무료로 다운로드하세요.

visualstudio.microsoft.com

여기서 다운로드 받을 수 있다.

 

그리고 다운로드 받을 때 그냥 C# 관련된 패키지는 전부 체크해서 받아버리는게 마음이 편하다.

 

 

2. Selenium Library 추가

 

1) C# WinForm 프로젝트를 생성한다.

 

2) 도구 - NuGet 패키지 관리자 - 솔루션용 NuGet 패키지 관리를 선택한다.

 

3) Selenium.WebDriver

Selenium.Support

Selenium.WebDriver.ChromeDriver

DotNetSeleniumExtras.WaitHelpers

 

이것들을 설치한다.

 

 

그러면 모든 환경이 세팅 완료되었다.

 

 이제 진짜 잘 되었는지 확인해보자.

 

3. 우측 Form1.cs를 클릭하면 무언가를 드래그앤드롭 할 수 있는 Form이 보일 것이다.

 

Form을 더블클릭 하거나 소스보기를 하고

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//Selenium Library
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
 
namespace ExamSelenium
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}

이 소스코드를 입력하고 Run 해보자.

 

Run 버튼은 상단에

 

이렇게 생긴거 찾아서 누르면 된다.

 

오류 없이 컴파일, 실행이 되었다면 모든 환경설정이 끝난것이다.

 

만약 오류가 뜬다면????

 

m.blog.naver.com/03625/221799559659

 

이 블로그를 참조해보자.

오류가 design 쪽에서 한두개 나는거라면, 오류가 나는 소스코드를 지워도 무관하다는 얘기이다.

 

 

 

 

설치가 정상적으로 완료되었다면, 사용해볼 차례이다.

 

인터넷은 대부분 네이버, 구글을 예시로 드는데 나는 코스트코를 예시로 들어보겠다.

 

로그인 페이지로 가서, ID, PW를 입력하고, 로그인 버튼을 눌러보겠다.

 

우선 소스코드이다.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// using selenium
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        protected ChromeDriverService _driverService = null;
        protected ChromeOptions _options = null;
        protected ChromeDriver _driver = null;

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            _driverService = ChromeDriverService.CreateDefaultService();
            _driverService.HideCommandPromptWindow = true;

            _options = new ChromeOptions();
            _options.AddArgument("disable-gpu");
            //_options.AddArgument("headless"); // 주석 해제시 Background에서 작업함.

            _driver = new ChromeDriver(_driverService, _options);

            _driver.Navigate().GoToUrl("https://www.costco.co.kr/login");

            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); //10초를 대기.(10초 이내에 로딩이 완료되면 다음코드 진행)

            _driver.FindElementByName("j_username").SendKeys(textBox1.Text);
            _driver.FindElementByName("j_password").SendKeys(textBox2.Text);
            _driver.FindElementById("loginSubmit").Click();
        }
    }
}

폼 구성

 

아래는 왜 이러한 소스코드가 나왔는지를 표현하는 것인데,

똑똑한 사람은 다 알것이다.

 

내 블로그는 똑똑한 사람만 들어올 것 같다.

Chrome의 F12로 ID를 확인
Pw의 name을 확인
로그인 id 확인

 

test.zip
1.59MB

파일에 selenium은 설치되어있지 않다.(용량문제)

 

댓글