Selenium WebDriver로 ServiceNow에 자동 로그인

◆개요


  • Web의 UI 테스트 자동화에 사용되는 Selenium WebDriver를 사용해 ServiceNow의 로그인 조작을 자동으로 해 보았다.

  • ◆ 동작 환경


  • OS: Windows10
  • Python 버전: 3.8.0

  • ◆준비



    ServiceNow 인스턴스 생성



  • ServiceNow Developers 페이지에서 계정을 등록하여 개발자 인스턴스를 만들 수 있습니다.
  • 작성이 완료되면 인스턴스 URL이나 admin 계정의 초기 정보가 표시되므로 반드시 메모해 둔다.


  • 파이썬 실행 환경 준비



  • 파이썬 공식 사이트 에서 설치 프로그램을 다운로드하여 설치합니다.
  • 반드시 pip가 포함되어 있는지 확인한다.


  • 셀레늄 준비


  • pip에서 Selenium을 설치합니다.
  • > pip install selenium


  • Selenium 공식 사이트 에서 이동하려는 브라우저의 드라이버를 다운로드합니다.
  • 이번은 Google Chrome상에서 움직이기 위해, 「Google Chrome Driver」를 다운로드한다.
  • 다운로드한 「chromedriver.exe」를 임의의 장소에 설치해 둔다.


  • ◆ServiceNow를 조작해 본다



    브라우저 시작


  • 브라우저를 Google 크롬으로 지정하여 시작합니다.
  • 드디어 창 최대화

  • from selenium import webdriver
    
    # Google Chromeを起動
    driver = webdriver.Chrome(executable_path = 'Chrome Driverのパス')
    # ウィンドウを最大化
    driver.maximize_window()
    

    ServiceNow 로그인 페이지로 이동


  • 인스턴스당 URL을 지정하여 액세스합니다.
  • # ServiceNowのログインページへアクセス
    driver.get('https://<ServiceNowのインスタンス名>.service-now.com/')
    driver.implicitly_wait(20)
    

    로그인 양식의 요소 검색


  • 로그인 양식 부분이 iframe 내에 있기 때문에, 그대로 id 지정하면 발견되지 않고 에러가 토출된다.
  • 먼저 iframe의 요소를 취득해, switch_to_frame로 프레임 이동을 실시할 필요가 있다.
  • 조작이 끝나면 switch_to.default_content() 로 iframe 내에서 빠진다.

  • # ログインフォームの含まれるiframeの要素を取得する
    login_iframe = driver.find_element_by_xpath("//*[@id='gsft_main']")
    # 指定したiframe内へ移動
    driver.switch_to_frame(login_iframe)
    
    # ユーザー名フォームの要素取得 & ユーザー名入力
    user_name_form = driver.find_element_by_id('user_name')
    user_name_form.send_keys("<ユーザー名>")
    
    # パスワードフォームの要素取得 & パスワード入力
    password_form = driver.find_element_by_id('user_password')
    password_form.send_keys("<パスワード>")
    
    # ログインボタンの要素取得 & ログインボタンクリック
    login_button = driver.find_element_by_id('sysverb_login')
    login_button.click()
    
    driver.implicitly_wait(20)
    
    # iframeから抜ける
    driver.switch_to.default_content()
    

    ◆참고 페이지


  • Python + Selenium으로 Chrome 자동화
  • Selenium webdriver 자주 사용하는 조작 방법 요약
  • Selenium에서 iframe에 들어오고 나갔다.
  • 좋은 웹페이지 즐겨찾기