WinAppDriver로 테스트 자동화: 운영별 테스트 코드
16696 단어 VisualStudioWinAppDriver자동 테스트C#
환경 구축 순서 및 각 조작의 기술 방법을 이하에 정리한다.
환경
설치
htps : // 기주 b. 코 m / 미 c 로소 ft / 우아 나 pD 리 ゔ ぇ r / 레 ぇ 아세 s
C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe
테스트 코드 작성
※주의: Appium의 버전에 따라 쓰는 방법이 다르다. 인터넷상의 샘플 프로그램의 대부분은 3계이다. Nuget 패키지 매니저로 인스톨 되는 것은 4계이므로, 4계의 쓰는 방법을 하는 것.
테스트 자동화
작성한 테스트 코드
htps : // 기주 b. 이 m / ysk - 헤 / ぃ
Setup
3계
var appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", @"C:\Ysk\WinAppDriverTest\WinAppDriverTest\bin\Debug\WinAppDriverTest.exe");
_session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities);
4계
var options = new AppiumOptions();
options.AddAdditionalCapability("app", @"C:\Ysk\WinAppDriverTest\WinAppDriverTest\bin\Debug\WinAppDriverTest.exe");
_session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), options);
조작별
왼쪽 클릭
panel을 왼쪽 클릭하면 배경색이 노란색으로 바뀝니다.

4계
var panel = _session.FindElementByAccessibilityId("panel1");
var actions = new Actions(_session);
actions.Click(panel); // panel1をクリック
actions.Perform(); // 実行するために必要
더블 클릭
4계
var panel = _session.FindElementByAccessibilityId("panel1");
var actions = new Actions(_session);
actions.DoubleClick(panel); // panel1をダブルクリック
actions.Perform();
오른쪽 클릭
panel을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 표시합니다.

4계
var panel = _session.FindElementByAccessibilityId("panel1");
var actions = new Actions(_session);
actions.ContextClick(panel); // panel1を右クリック
actions.Perform();
actions.Click(_session.FindElementByName("Clear"));
actions.Perform(); // コンテキストメニューのClearをクリック
마우스 조작
panel 위를 클릭하면서 마우스 커서를 이동합니다.

4계
var panel = _session.FindElementByAccessibilityId("panel2");
for (int i = 0; i < 10; i++)
{
var actions = new Actions(_session);
actions.MoveToElement(panel, i * 10, i * 10); // マウスカーソルを移動
actions.Click(); // クリック
actions.Perform();
Thread.Sleep(3000);
}
키 조작
textBox에 문자열을 입력합니다.

4계
var textBox = _session.FindElementByAccessibilityId("textBox1");
var actions = new Actions(_session);
actions.MoveToElement(textBox); // textBox1にマウスカーソルを移動
actions.SendKeys("test"); // キーボードで"test"を入力
actions.Perform();
Thread.Sleep(3000);
스크린샷
시작된 화면, 데스크톱 전체의 스크린샷을 찍는다.
4계
var form = _session.FindElementByAccessibilityId("Form1");
// 起動するまで待つ
Thread.Sleep(1000);
var shot = form.GetScreenshot();
shot.SaveAsFile("form.png", ScreenshotImageFormat.Png); // スクリーンショットを保存
var options = new AppiumOptions();
options.AddAdditionalCapability("app", "Root");
var deskSession = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), options);
shot = deskSession.GetScreenshot();
shot.SaveAsFile("desktop.png", ScreenshotImageFormat.Png); // デスクトップ全体のスクリーンショットを保存
기타
실행된 앱에 연결
시작된 화면에 연결합니다.
4계
var options = new AppiumOptions();
options.AddAdditionalCapability("app", "Root");
var deskSession = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), options); // デスクトップセッション
var window = deskSession.FindElementByName("Form1");
var windowHandle = window.GetAttribute("NativeWindowHandle");
windowHandle = (int.Parse(windowHandle)).ToString("x"); // Convert to Hex
var winOptions = new AppiumOptions();
winOptions.AddAdditionalCapability("appTopLevelWindow", windowHandle);
var session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), winOptions); // Form1のセッション
var panel = session.FindElementByAccessibilityId("panel1"); // panel1
var actions = new Actions(session);
actions.Click(panel); // panel1をクリック
actions.Perform();
Thread.Sleep(3000);
원하는 작업을 자동화하기 위해
예 : 창 최소화 : Windows 키 + ↓ 키 (Keys.Meta + Keys.Down)
Reference
이 문제에 관하여(WinAppDriver로 테스트 자동화: 운영별 테스트 코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lusf/items/fea095b8f9a4af2423fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)