반응형

법정동코드를 확인하는 곳은 아래 사이트에서 확인할 수 있습니다.

 

법정동코드목록조회 - 행정표준코드관리시스템 (code.go.kr)

 

법정동코드목록조회 - 행정표준코드관리시스템

정상적으로 로그아웃하지 않았거나, 동일 사용자가 로그인한 상태입니다. 강제로 로그인 하시겠습니까? (강제 로그인 시 다시 로그인을 하셔야 합니다.)

www.code.go.kr

 

위 사이트에 들어가면 아래와 같이 노출됩니다.

원하는 법정동 코드를 검색하셔도 좋고 전체자료를 다운 받아서 확인도 가능합니다.

 

법정도코드를 사용 하는 방법은 맨 앞 5자리만 사용하시면 됩니다.

 

 

 

반응형
반응형

Appium을 통하여 Mobile Web을 실행할 때, 코드 몇줄의 실행이면 끝입니다.

 

desired capabilities라는 JSON 객체 설정하는 방법은 이전 포스팅에서 정리를 하였습니다.

 

코드를 간단하게 살펴보면, 

 

XXX Android 버전 11 디바이스의 크롬 브라우저를 사용하는 것을 desired_caps에 정의 합니다.

Senium Webdriver를 활용해 Remote 하는 주소인 http://127.0.0.1:4723/wd/hub 즉, Appium 서버 주소를 입력하여 줍니다.

그리고 네이버 주소를 들어가고, driver 종료를 해라라는 뜻입니다.

from appium import webdriver

desired_caps = dict(
    deviceName= 'XXX',
    platformName='Android',
    platformVersion='11',
    browerName='chrome'
)

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.get("https://www.naver.com/")

driver.quit()

 

반응형

'software testing > appium' 카테고리의 다른 글

Appium DesiredCapabilities 설정 방법  (0) 2023.01.26
Appium 설치 - Appium  (0) 2022.03.14
Appium 설치 - Node.js  (0) 2022.03.12
Appium 설치 - Android SDK  (0) 2022.03.11
Appium 설치 - JDK (Window Version)  (0) 2022.03.10
반응형

이전 포스팅에서는 Locator의 종류를 설명했습니다.

 

이번 시간에는 Locator 사용방법을 설명드리겠습니다.

 

Selenium WebDriver에서 요소 찾기는 Selenium WebDriver 및 WebElement 클래스에서 제공하는 findElement() 및 findElements() 메서드를 사용하여 수행됩니다.

 

1. findElement() 메소드는 한개의 Web Element(웹요소) 를 동작하는데 사용합니다.  

    예 : driver.findElement(By.LocatorStrategy(“Locator Value”)

 

2. findElements() 메소드는 웹 페이지내의 Web Elements(웹요소들)을 동작하는데 사용합니다. 이 메소드는 목록 인터페이스를 통해 WebElement(웹요소) 목록을 반환하며, 이를 반복하고 작업을 수행할 수 있습니다.

 

    예 : List <WebElement> elementname = driver.findElements(By.Locator(“Locator Value”))

 

ID: ID 로케이터는 id 속성 값으로 WebElement를 찾는 데 사용됩니다. 대부분의 ID는 WebElement(웹요소)에 대해 고유합니다. 여기서 id 속성의 값을 매개변수로 전달해야 합니다.

 

사용방법 : driver.findElement(By.id(“element id”))

예 : driver.findElement(By.id(“nav-search-submit-button”))

 

Name: Name 로케이터는 이름 속성 값으로 WebElement를 식별하는 데 사용됩니다. 동일한 이름 로케이터를 가진 여러 요소가 있는 경우 페이지의 첫 번째 요소가 선택됩니다.

 

사용방법 : driver.findElement(By.name(“element name”))

예 : driver.findElement(By.name(“email”))

 

ClassName: ClassName 로케이터는 class 속성 값으로 WebElement를 식별하는데 사용합니다.

 

사용방법 : driver.findElement(By.className (“element class”))

예 : driver.findElement(By.className(“a-button-inner”))

 

 

 

TagName: TagName 로케이터는 findElements() 메소드와 함께 웹페이지에서 유사한 여러 항목을 식별하는 데 사용됩니다. HTML 태그의 도움으로 WebElements를 찾는 데 사용됩니다.

 

사용방법 : driver.findElement (By.tagName (“HTML tag name”));

예 : List<WebElement> lists=driver.findElements(By.tagName(“a”))

 

Link Text: 링크 텍스트는 정확한 텍스트로 요소를 식별하는 데 사용됩니다.

 

사용방법 : driver.findElement(By.linkText (“linktext”))

예 : driver.findElement(By.linkText(“Today's Deals”))

 

 

PartialLinkText: 이 방법은 링크 텍스트의 일부가 포함된 요소를 찾는 데 도움이 됩니다. (linkText는 텍스트 전부, PartialLinkText는 일부라고 생각하시면 됩니다.)

 

사용방법: driver.findElement(By.partialLinkText (“partiallinktext”))

예 : driver.findElement(By. partialLinkText (“Service”))

 

Xpath: XPath는 XML 경로 언어를 나타내며, 페이지의 HTML 구조를 탐색하는 데 사용됩니다. 또한 HTML DOM 구조를 사용하여 웹 페이지에서 요소의 위치를 ​​찾기 위해 HTML 및 XML 문서 모두에 사용할 수 있습니다.

 

사용방법 : driver.findElement(By.xpath (<xpath>))

예: driver.findElement(By.xpath("//input[@id='twotabsearchtextbox']")

 

CSS Selector(CSS stands for Cascading Style Sheet): CSS 선택기는 요소 선택기와 웹 페이지 내에서 웹 요소를 식별하는 값의 조합입니다. HTML 태그, 속성, ID 및 클래스의 문자열 표현입니다.

사용방법 : driver.findElement(By.cssSelector(“css selector”))

예 : driver.findElement(By.cssSelector(“#twotabsearchtextboxl”))

 
 

 

참조:

 

다음 시간에는 위 Locators 중 많이 사용되는 것들로 예제를 만들어서 동작시켜보도록 해보겠습니다.

반응형
반응형

Locator 란?

 

웹 페이지 내에서 웹 요소를 고유하게 식별할 수 있는 주소라고 할 수 있습니다. Locator는 작업을 수행하는데 필요한 웹 요소에 대해 Selenium에 알려주는 웹 요소의 HTML 속성입니다. 

쉽게 설명하자면 이렇습니다.

 

온라인으로 물건을 구매한다고 가정을 하겠습니다. 열심히 온라인으로 구매할 물건을 검색하여 최저가의 물건을 찾았고, 배송지를 입력하고 결제를 합니다. 

 

내가 살 물건은 어떤 행위를 해야할 대상입니다. 해당 대상을 찾았으면 배송지가 어디인지를 입력해야 하는데 그 배송지는 Locator라고 볼 수 있습니다. 해당 Locator 를 찾으면 결제 즉, 행동입니다. 그 행동은 클릭이 될 수 있고 글을 입력할 수 있는 것 등이 될 수 있습니다.

 

그러면 Locator는 종류가 무엇이고 어떻게 찾을 수 있을까요?

 

Locator의 종류는 아래와 같습니다.

- ID

- ClassName

- Name

- LinkText

- Xpath

-CSS Selector

 

다양한 Locator 들 가운데 일반적으로 가장 많이 사용되는 경우는 Xpath와 CSS Selector 입니다. (그 외에도 많이 사용합니다.)

 

Locator 를 찾는 방법을 알려드리겠습니다.

 

- 웹 브라우저(chrome)를 열어 놓습니다. (ex. google)

- F12 를 눌러서 개발자도구를 엽니다.

    1. 웹 요소를 식별하기 위해 검사 아이콘을 클릭합니다.

    2. 검사할 대상(요소)을 클릭합니다.

    3. 요소를 기록해둡니다. (ex. CLASS, ID..)

 

이와 같은 방법을 통하여 요소를 찾을 수 있습니다. 다음 시간에는 Locator 들을 하나씩 사용하는 예시를 알려드리겠습니다.

반응형
반응형

테스트 자동화에서 가장 많이 사용하는 기능 5가지를 선정하라면, 하기와 같다.

  • get( )
  • wait( )
  • find_element( )
  • send_keys( )
  • click( )

 

1. get( )

get 명령은 새 브라우저를 시작하고 크롬 웹드라이버 에서 주어진 URL을 엽니다 . 단순히 문자열을 지정된 URL로 사용하고 테스트 목적으로 엽니다.

Selenium IDE를 사용한다면 open 명령어와 비슷합니다.

예시:

driver.get("https://google.com");

'드라이버'는 모든 작업을 수행할 Chrome 웹 드라이버이며 위의 명령을 실행한 후 다음과 같이 표시됩니다.

 

wait()

wait 는 말 그대로 ‘기다리라’는 뜻이다. implicitly wait 또는 explicitly wait 를 사용하는데, 이 부분은 다음 시간에 배우기로 하고 많이 사용하는 것 중에 하나다 라고 기억해주면됩니다.

find_element()

이 기능은 페이지의 요소에 액세스하려는 경우에 중요합니다. 검색을 수행하기 위해 "Google 검색" 버튼에 액세스하려고 한다고 가정해 보겠습니다.

요소에 액세스하는 방법은 여러 가지가 있지만 내가 선호하는 방법은 요소의 XPath를 찾는 것입니다. XPath는 웹 페이지에서 요소의 최종 위치입니다.

F12를 클릭하면 페이지를 검사하고 현재 있는 페이지에 대한 배경 정보를 얻을 수 있습니다.

 
 

선택 도구를 클릭하면 요소를 선택할 수 있습니다.

검색창을 왼쪽 버튼으로 클릭하면 파란색으로 표시된 부분이 노출됩니다. 오른쪽으로 클릭하고 "Copy Xpath" 를 선택하면 검색창의 Xpath 가 복사됩니다. 

self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div[2]/div[2]/input')

새 세션의 요소가 변경되고 다음에 스크립트를 수행할 때 작동하지 않으면 일반 XPath가 변경될 수 있기 때문에 일반 XPath보다 전체 XPath를 선호합니다.

다른 find_element 함수의 개요입니다. 

 

send_keys( ) 및 click( )

Send_keys( ) 와 click( ) 기능은 find_element 기능을 사용하여 선택한 필드에 텍스트를 입력 또는 클릭을 하는 데 사용됩니다.

Google에 "testing"를 입력하고 Google 로고를 클릭한다고 가정해 보겠습니다. 

google_tray = driver.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div[2]/div[2]/input')
google_search = driver.find_element_by_xpath('/html/body/div[1]/div[2]/div/picture/img')

google_tray.send_keys("testing")
google_search.click()

요소를 각각의 변수에 저장한 다음 더 명확하게 하기 위해 요소에 대해 기능을 수행했습니다.

결국 다음과 같이 끝납니다.

 

 

반응형
반응형

webdriver.ChromeOptions() 함수를 실행할 때 크롬 드라이버의 경로만 매개변수로 지정 해줍니다.

여기에 chrome_options 매개변수를 추가로 입력하면 브라우저 크기, 시크릿모드, headless 모드 등 다양한 옵션을 설정할 수 있습니다. 아래는 대표적으로 많이 사용하는 옵션들로 맨 하단에 참고 부분에는 좀 더 많은 옵션들을 확인할 수 있습니다.

 

  • headless : headless 모드 설정
  • disable-gpu : gpu를 사용 안하도록 설정
  • lang=ko_KR : 한국어로 실행되도록 설정
  • start-maximized : 브라우저 최대화
  • window-size=1920,1080 : 1920*1080 브라우저 크기로 오픈
  • incognito : 시크릿모드
  • disable-popup-blocking : 팝업 차단 해제

아래 간단한 예시로 크롬 브라우저를 실행할 때, 창을 최대화하면서 시크릿 모드로 구글 사이트로 진입하는 코드입니다.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions() # 크롬 옵션 객체 생성
chrome_options.add_argument('start-maximized')
chrome_options.add_argument('incognito')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

driver.get(url='https://www.google.com/')

driver.quit()

 

참고 : 

 

GitHub - grafeen/selenium_ex03

Contribute to grafeen/selenium_ex03 development by creating an account on GitHub.

github.com

 

 

List of Chromium Command Line Switches « Peter Beverloo

 

peter.sh

 

 

반응형
반응형

'Selenium webdriver 로 웹페이지 띄우기' 를 진행하며 chrome webdriver를 실행했는데, 아래와 같은 warning이 뜨는 경우가 있습니다.

 

DeprecationWarning: executable_path has been deprecated, please pass in a Service object 

 

이런 경우 service 키워드를 사용하면 됩니다.

 

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
driver.get(url='https://www.google.com/')

driver.quit()

 

아래는 실행 결과후 console 창에 

 

참고 : 

반응형
반응형

Selenium webdriver로 웹페이지 띄우기(1) 에서는 chromedriver를 직접 다운 받아서 폴더에 넣고 경로를 지정해서 웹페이지 띄우는 방법을 보여드렸습니다.

 

chromedriver를 다운 받는 것은 어느 사이트를 보던 흔하게 있는 예제였는데요, 제가 이번에 보여드릴 예제는 webdriver-manager 라는 패키지를 설치함으로서 chromedriver 설치 및 경로 지정 없이 사용하는 방법을 알려드리겠습니다.

 

먼저, 새로운 프로젝트를 만들거나 혹은 지난 시간에 했던 프로젝트에 새로운 python 파일을 만듭니다.

 

저는 새로운 프로젝트를 만들었습니다. (새로운 프로젝트 생성 시, selenium 을 다시 설치하셔야 합니다.)

지난 시간에 selenium 설치하는 방법을 터미널을 통해 패키지를 설치하거나 pycharm IDE의 python interpreter 를 통해 패키지를 설치하는 방법을 알려드렸는데요, 이번에도 동일하게 어떤 것을 사용하시던 무방합니다.

 

다시 한번 복습겸 방법을 알려드리면 아래와 같습니다.

 

 첫번째 : 터미널로 pip install webdriver-manager 를 입력하고 엔터를 치면 설치가 됩니다.

 두번째 : File -> Settings -> Project: XXXX 로 적혀있는 부분 클릭 -> Python Interpreter 클릭 -> 여기서 [+] 버튼 클릭 -> 검색창에 webdriver-manager를 입력 후 [Install Package] 버튼을 클릭하면 됩니다.

webdriver-manager 패키지가 설치되고 나면 팝업창을 전부 닫아주세요.

 

저는 이전 시간과 마찬가지로 main.py 를 전부 지우고 작성하겠습니다.

하기와 같이 명령어를 입력하시면 됩니다.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url='https://www.google.com/')

driver.quit()

전체를 보면 아래와 같습니다.

실행을 해보도록 하겠습니다. 실행은 마우스 오른쪽 버튼을 클릭하고, Run 'main' 하시거나 단축키 Control + Shift + F10 을 누르면 크롬 브라우저로 구글 웹페이지가 열렸다가 닫히는 것을 보실 수 있습니다. 

이전과 달라진 소스코드는 아래 영역으로, chromedriver를 다운 받아서 경로 지정하는 부분이 ChromeDriverMaanager().install() 로 경로 지정할 필요없이 알아서 설치가 되는 장점이 있습니다.

driver = webdriver.Chrome(ChromeDriverManager().install())

 

소스코드 : 

 

GitHub - grafeen/selenium_ex02

Contribute to grafeen/selenium_ex02 development by creating an account on GitHub.

github.com

 

 

반응형
반응형

지난 시간에는 Selenium 설치방법 에 대해 알아봤습니다.

 

웹페이지를 브라우저로 열기 위해서는 크롬의 경우 chromedriver, 파이어폭스의 경우 geckodriver와 같은 webdriver 프로토콜이 필요합니다. (자세한 설명은 selenium 웹페이지에서 보시면 나와 있으니 궁금하신 분은 검색으로...)

 

거의 모든 예시는 chrome 브라우저를 가지고 들으며, 실제적으로 많이 사용하기 때문에 저 또한 chrome 브라우저를 통해 보여드리겠습니다.

 

chromedriver를 통해 웹페이지를 띄우는 방법은 2가지가 있습니다.

 

일단 첫번째는 많이들 사용하는 방법으로 chromedriver를 다운 받아서 경로를 지정하여 호출하는 방법입니다.

 

1. 구글에서 chromedriver를 입력하시면, 아래와 같이 ChromeDriver 웹페이지가 있습니다. 이걸 클릭해주세요.

2. ChromeDriver 사이트에 들어가면 Current Releases 에 각종 버전들이 있습니다. 일단 어떤 버전들이 있구나 보시면 됩니다.

3. 그리고 내가 사용하는 크롬 브라우저를 실행 시키고, 브라우저 창에 chrome://settings/help 를 입력해주면 현재 내가 사용하는 버전을 알 수 있습니다.

저는 96.04664.93 버전을 사용하고 있네요. (21년 12월 기준)

4. 현재 브라우저 버전을 기억하고 ChromeDriver 웹페이지를 보시면 96.04664.45 버전을 볼 수 있습니다. 맨 뒤의 숫자들보다는 맨 앞의 숫자를 맞춰서 다운 받아주시면 됩니다. (예를 들면 내가 현재 96.0.4664.93 버전인데 97.04692.36 버전을 받으면 동작이 제대로 안되는 경우가 발생합니다.)

 

96.04664.45 버전을 클릭하면 아래와 같이 각종 OS에 맞는 버전을 다운 받습니다. 저는 win10이기 때문에 chromedriver_win32.zip을 받았습니다.

5. 받은 파일의 압축을 풀면 chromedriver.exe 가 나오는데, 이걸 이전 시간에 만들었던 프로젝트 폴더 내에 넣어줍니다. (chromedriver.exe 파일 앞에 물음표가 있는데 무시하셔도 됩니다.)

6. main.py 파일을 사용해보겠습니다. main.py 내용 전부 삭제하시고, 하기와 같은 명령어를 입력하시면 됩니다.

(엄청 단순하죠? 처음이니까...쉬엄쉬엄...가야죠)

from selenium import webdriver

driver = webdriver.Chrome('./chromedriver.exe')
driver.get(url='https://www.google.com/')

driver.quit()

전체를 보면 아래와 같습니다.

7. 실행을 해보도록 하겠습니다. 실행은 마우스 오른쪽 버튼을 클릭하고, Run 'main' 하시거나 단축키 Control + Shift + F10 을 누르면 크롬 브라우저로 구글 웹페이지가 열렸다가 닫히는 것을 보실 수 있습니다. 

 

코드를 보면, 

먼저 webdriver.Chrome() 함수를 사용하여 드라이버를 로드합니다. 이걸 driver라는 변수에 저장합니다.

webdirver.Chrome() 함수 내에는 pythonProject2 폴더내에 바로 chromedriver.exe 파일이 위치하기 때문에 ./ 를 사용했습니다. 

그리고 get(url) 함수를 사용하여, 해당 URL을 브라우저에서 띄우게 됩니다.

마지막으로 driver.quit() 를 사용하여 브라우저를 닫게 됩니다.

 

소스코드 :

 

GitHub - grafeen/selenium_ex01

Contribute to grafeen/selenium_ex01 development by creating an account on GitHub.

github.com

 

반응형
반응형

앞서 작성한 포스팅에서 Selenium Suite 패키지 중 가장 일반적으로 사용하는 것은 Selenium Webdriver 입니다.

Selenium 을 검색해보면 수 많은 자료들이 있는데 가장 기본적인 selenium webdriver 를 설치하는 방법이죠.

저 또한 설치하는 방법부터 시작하려고 합니다.

 

준비물 : Windows 환경, Pycharm

 

1. 최신 버전의 Python을 다운 받아서 설치합니다. (2021년 12월 6일 현재 3.10.0 버전)

 

2. Jet Brain사이트에 가서 Community 버전의 Pycharm IDE를 다운 받아서 설치합니다.

-> Pycharm 이란?  컴퓨터 프로그래밍, 특히 Python 언어에 사용되는 통합 개발 환경입니다.

 

3. Pycharm IDE를 실행 시킵니다.

File -> New Project -> (Location 변경 가능) Create 버튼을 클릭합니다.

프로젝트가 생성되면 하기의 이미지와 같이 나옵니다. 

4. selenium 을 설치하기 위해서 2가지 방법이 있습니다. 

 첫번째 : 터미널로 pip install selenium 입력하고 엔터를 치면 설치가 됩니다.

 두번째 : File -> Settings -> Project: XXXX 로 적혀있는 부분 클릭 -> Python Interpreter 클릭하면, 아래와 같은 화면이 나옵니다.

여기서 [+] 버튼 클릭 -> 검색창에 selenium 입력 후 [Install Package] 버튼을 클릭하면 됩니다.

 

반응형

+ Recent posts