본문 바로가기

자료

C#/Python Selenium install

728x90

C#/Python Selenium install

ChromeDriver : https://chromedriver.chromium.org/downloads


크롬 디버깅 모드 실행

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:/Users/root/Desktop/ChromeDebug"

이렇게 실행하지 않으면 절때 셀레니움 창으로 디버깅할수없다.


C#

  • 패키지로 설치하면 ChromeDriver.exe 가 자동적으로 생성된다.

  • Visual Studio에서 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔(알트 T N O)

          Install-Package Selenium.WebDriver.ChromeDriver   
          Install-Package Selenium.WebDriver
          Install-Package Selenium.Support
    
  • 기본적인코드
          ChromeDriverService _driverService = null;
          ChromeOptions _options = null;
          ChromeDriver _driver = null;
    
          //_options.AddArgument("headless");
          //_options.AddArgument("no-sandbox");
          //_options.AddArgument("disable-gpu");
          //_options.AddArgument("window-size=1920x1080");
          //_options.AddArgument("disable-gpu");
    
          _driverService = ChromeDriverService.CreateDefaultService();
          _driver = new ChromeDriver(_driverService);
    
  • 디버깅모드 컨트롤
      ChromeDriverService _driverService = null;
      ChromeOptions _options = null;
      ChromeDriver _driver = null;
      _options = new ChromeOptions();
      _options.DebuggerAddress = "127.0.0.1:9222";
      _driver = new ChromeDriver(_options);
    
  • 타입아웃설정 / 이동
      _driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(10);
      _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
      _driver.Navigate().GoToUrl("https://test.com");
    
  • 자바스크립트 실행
      String Javascript = String.Format(
          "document.getElementById('id').value = '{0}';document.getElementById('pw').value = '{1}';", 
          username, userpassword);
      ExecuteScript(_driver, Javascript);
    
  • 키입력
      element.SendKeys(OpenQA.Selenium.Keys.Enter);
    
  • 객체찾기 IWebElement 에서는 By.XPath 로 추가적으로 찾을수있다.
      IWebElement close = _driver.FindElementByXPath(
          "//div[@class='modal-dialog']//button[@aria-label='닫기']"
      );
    
  • 문자열로 element 를 찾는다면
      //*[contains(text(), '확인')]
    
  • 프레임접근
      IWebElement iframe = _driver.FindElementByXPath("//iframe");
      _driver.SwitchTo().Frame(iframe);
    
  • 탭접근
       _driver.SwitchTo().Window(_driver.WindowHandles.First());
       _driver.SwitchTo().Window(_driver.WindowHandles.Last());
    
  • 닫기
      _driver.Close(); // 현재창만 닫음
      _driver.Quit();  // 크롬전체를 닫음
    

Python

설치

	pip install selenium
	from selenium import webdriver
	from selenium.webdriver.remote.webelement import WebElement
	from selenium.common.exceptions import TimeoutException
	from selenium.common.exceptions import NoSuchElementException
	from selenium.webdriver.common.action_chains import ActionChains
	chrome_options = webdriver.ChromeOptions()
	# chrome_options.add_argument("--headless")
	# chrome_options.add_argument("--no-sandbox")
	# chrome_options.add_argument("--disable-dev-shm-usage")
	# chrome_options.add_argument("--disable-gpu")
	# chrome_options.add_argument("--window-size=1920,1080")
	# chrome_options.add_argument("--window-size=1920,1080")
	#chrome_options.debugger_address = "127.0.0.1:9222"
	driver = webdriver.Chrome(options=chrome_options)
	driver.get("http://www.naver.com")
728x90