728x90
반응형
이번 블로그에서는 Appium과 C#을 이용해 Android 폰을 원격으로 제어하는 방법을 다룹니다. 특히, Google Chrome을 열어 특정 사이트로 이동하고, 해당 사이트의 콘텐츠를 읽어오는 과정을 통해 Appium을 활용하는 방법을 익혀봅니다.
Appium은 모바일 애플리케이션의 테스트 자동화 도구로, iOS와 Android 기기를 지원합니다. 특히, Appium은 Selenium WebDriver와 유사하게 동작하여 C#과 같은 언어를 사용할 수 있어, 웹 및 모바일 자동화 테스트에 큰 유용성을 제공합니다. 이 글을 통해 Appium의 기초와 실전 활용 방법을 배울 수 있습니다.
1. 개발 환경 설정
- Appium 서버 설치: Appium Desktop을 설치하고 실행합니다. 이 서버는 Android 기기와의 상호작용을 위한 연결을 제공합니다. Appium 공식 웹사이트에서 다운로드 가능합니다.
- C# 프로젝트 설정: Visual Studio 또는 Rider와 같은 C# IDE에서 새 프로젝트를 생성한 후, Appium.WebDriver 라이브러리를 설치합니다. 이 라이브러리는 NuGet을 통해 설치할 수 있으며, Appium의 WebDriver 명령을 사용할 수 있게 합니다.
Install-Package Appium.WebDriver
2. Appium 설정: 기본 DesiredCapabilities 설정
- DesiredCapabilities는 Android 기기와 Appium 서버 간의 상호작용에 필요한 기기 정보를 정의합니다. 여기에는 기기 이름, 플랫폼 버전, 실행할 애플리케이션 등의 정보가 포함됩니다.
- 예를 들어, Google Chrome 앱을 열기 위해 appPackage와 appActivity 설정이 필요합니다. Android Chrome의 패키지명은 com.android.chrome이며, 액티비티는 com.google.android.apps.chrome.Main입니다.
var capabilities = new AppiumOptions();
capabilities.AddAdditionalCapability("platformName", "Android");
capabilities.AddAdditionalCapability("deviceName", "MyAndroidDevice"); // 실제 기기 이름으로 교체
capabilities.AddAdditionalCapability("appPackage", "com.android.chrome");
capabilities.AddAdditionalCapability("appActivity", "com.google.android.apps.chrome.Main");
3. Chrome 실행하기
- AndroidDriver를 생성하여 Chrome을 실행합니다. AndroidDriver는 Appium WebDriver 인터페이스를 통해 Chrome과의 상호작용을 제공합니다.
- driver.Navigate().GoToUrl("https://www.example.com"); 명령을 통해 특정 URL로 이동할 수 있습니다.
var driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.Navigate().GoToUrl("https://www.example.com");
4. 웹 페이지에서 요소 찾기 및 크롤링하기
- Appium의 FindElement 메서드를 사용해 특정 HTML 요소를 검색할 수 있습니다. 예를 들어, 페이지의 제목 요소(<h1>)을 XPath를 통해 찾고 그 텍스트를 출력합니다.
- 크롤링은 이렇게 HTML 요소의 속성이나 텍스트를 가져오는 방식으로 수행됩니다.
var element = driver.FindElementByXPath("//h1");
Console.WriteLine("Page Title: " + element.Text);
5. 웹 페이지 스크롤 및 추가 데이터 크롤링
- 모바일 화면의 경우, 특정 위치로 스크롤을 수행해 더 많은 콘텐츠를 로드할 수 있습니다.
- TouchAction 객체를 사용해 스크롤 동작을 수행할 수 있습니다. 이 방법은 모바일의 드래그 제스처와 유사한 방식으로 동작하여 페이지의 하단까지 이동합니다.
var touchAction = new TouchAction(driver);
touchAction.Press(500, 1500).MoveTo(500, 500).Release().Perform(); // 화면을 아래로 스크롤
6. 세션 종료 및 마무리
모든 작업이 끝나면 driver.Quit()을 호출해 Appium 세션을 종료하고 연결을 해제합니다. 이 명령을 통해 모든 리소스를 해제하여 메모리 누수를 방지합니다.
driver.Quit();
728x90
반응형
'프로그래밍 > 안드로이드' 카테고리의 다른 글
Appium과 CI/CD 파이프라인 통합: Jenkins와 AWS Device Farm을 활용한 테스트 자동화 (0) | 2024.11.12 |
---|---|
Appium Inspector 사용법: 실무에서 바로 적용하는 예제와 활용 팁 (0) | 2024.11.12 |
ADB를 이용하여 크롬 제어하기 with C# (0) | 2024.11.12 |
7. ADB 명령어 스크립팅 및 자동화 (0) | 2024.11.12 |
6. 개발 및 테스트 도구로서의 ADB 활용 (0) | 2024.11.12 |