본문 바로가기
프로그래밍언어 & 프레임워크/C#

셀레니움(Selenium)을 활용한 스마트스토어 자동 로그인[C#]

by 공부하는개미 2020. 11. 2.
반응형

 

셀레니움(Selenium) 라이브러리

 

  • Nuget 패키지로 Selenium 직접 다운로드 및 적용

  • C# Winform을 활용한 간단한 로그인폼

  • 셀레니움을 활용 자동 로그인 시스템

  • 버튼클릭 소스 구현

 

 

 

 

 

 

 

 

 

# Nuget 패키지로 셀레니움 라이브러리 다운로드 및 적용 방법

 

 

[셀레니움/Selenium, C#] C#에서 Selenium을 사용하기 위한 준비 단계

요즘 코로나 때문에 재택근무로 전환하는 기업들이 점차 늘고 있습니다. 제 집사람도 마찬가지인데요. 주말에 재택근무를 준비한다고 해서 회사에서 무슨 일을 하는지 살펴봤습니다. 그런데 생

luckygg.tistory.com

 

셀레니움을 C#에서 사용하기 위한 준비단계가 위 사이트에 자세히 나와있습니다.

 

 

 

 

 

 

 

# 윈폼 디자인

 

 

사용된 도구 상자

Lable: 3개

CheckBox: 1개

Button: 1개

 

 

 

 

 

# 네임스페이스 영역

 

using System;
using System.Threading;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

크롬 브라우저를 사용해서 using OpenQA.Selenium.Chrome; 입력했습니다.

 

 

 

 

 

 

 

 

# 버튼, 체크박스 이벤트 영역

 

 public Form1()
        {
            InitializeComponent();
        }

        string naverUrl = 
        "https://nid.naver.com/nidlogin.login?url=https%3A%2F%2Fsell.smartstore.naver.com
        %2F%23%2FnaverLoginCallback%3Furl%3Dhttps%253A%252F%252Fsell.smartstore.naver.com%252F%2523";
        
        private void btnLogin_Click(object sender, EventArgs e)
        {
            // 입력된 아이디, 패스워드 strig형식의 id와 pass에 각각 대입
            string id = textID.Text;
            string pass = textPass.Text;

            IWebDriver driver = new ChromeDriver();

            // 네이버 스마트스토어 로그인 페이지 이동
            driver.Navigate().GoToUrl(naverUrl);

            // 아이디 영역 선택
            var naverId = driver.FindElement(By.XPath("//*[@id='id']"));
            Thread.Sleep(100);

            // 아이디 입력
            naverId.SendKeys(id);
            Thread.Sleep(100);
            

            // 패스워드 영역 선택
            var naverPass = driver.FindElement(By.XPath("//*[@id='pw']"));
            Thread.Sleep(100);

            // 패스워드 입력
            naverPass.SendKeys(pass);
            Thread.Sleep(100);

            // 전부 입력 후 로그인 누르기
            driver.FindElement(By.XPath("//*[@id='log.login']")).Click();

        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
        	// 체크박스를 체크하면 비밀번호가 보입니다(체크 해제 시 '*'로 표시).
            if (checkBox1.Checked == true)
            {
                textPass.PasswordChar = default(char);
            }
            else
            {
                textPass.PasswordChar = '*';
            }
        }

 

  • 네이버 스마트스토어  URL이 너무 길어서 필드영역 naverUrl에 대입했습니다.

  • 체크박스 이벤트를 통한 비밀번호 '*'로 보이기 해제(체크 시 해제)

  • Thread.Sleep()을 이용해 입력 딜레이 추가

 

 

 

 

 

 

 

참고 사이트(아래 클릭 시 링크로 이동)

- luckygg.tistory.com/224

- luckygg.tistory.com/225?category=884641

- nwairr.tistory.com/entry/

반응형

'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글

C# 대리자(Delegate)  (0) 2021.05.20
C# 속성(Property)  (0) 2021.05.20
C# 예외처리하기(Exception)  (0) 2021.05.19
C# 인터페이스(Interface)  (0) 2021.05.18
WPF UI 코딩 배우기1  (0) 2021.04.25