winappdriver 를 사용하여 윈도우 탐색기의 파일 목록을 가져오는 방법
2022. 6. 9. 23:11
반응형
윈도우 탐색기의 파일 목록을 가져오는 방법
먼저 해당 경로의 첫번째 파일 xpath를 UIRecorder를 통해 확보한다.
xpath를 보면 파일명 이전에
/ListItem[@ClassName=\"UIItem\"]
이 요소를 볼 수 있다. UIItem 이 목록을 담고 있는 요소라고 직감적으로 판단할 수 있다.
그렇다면 해당 목록을 Name을 모두 가져올 수 있을 것이다.
java 코드
public class Modules extends Setup{
public static WindowsDriver<?> winapp = null;
public Modules(WindowsDriver<?> driver) throws Exception {
winapp = driver;
}
public void 개인폴더(String folder_name) {
ArrayList<String> list = new ArrayList<String>();
//해당 경로의 목록 xpath
String folder_listview = "/Pane[@ClassName=\"#32769\"][@Name=\"데스크톱 1\"]"
+ "/Window[@ClassName=\"CabinetWClass\"][@Name=\"MYBOX\"]"
+ "/Pane[@ClassName=\"ShellTabWindowClass\"][@Name=\"MYBOX\"]"
+ "/Pane[@ClassName=\"DUIViewWndClassName\"]"
+ "/Pane[@Name=\"셸 폴더 보기\"][@AutomationId=\"listview\"]"
+ "/List[@ClassName=\"UIItemsView\"][@Name=\"항목 보기\"]"
+ "/ListItem[@ClassName=\"UIItem\"]";
//목록 파일 명 불러오기
List<WebElement> list_elements = (List<WebElement>) winapp.findElementsByXPath(folder_listview);
System.out.println("size"+size);
for (WebElement e : list_elements) {
list.add(e.getText());
System.out.println(e.getText());
}
System.out.println("------------------\n");
System.out.println("list 21번째 파일명" +list.get(21));
}
▼상속받은 setup.java 코드 보기
더보기
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.windows.WindowsDriver;
import io.appium.java_client.windows.WindowsElement;
/**
* Hello world!
*
*/
public class Setup
{
public static WindowsDriver ExplorerSession = null;
public static WindowsDriver<WindowsElement> WindowSession = null;
public static WebElement Result = null;
public static ChromeDriver Chrome = null;
public static Modules modules;
public static Actions actions ;
public static Session session;
@BeforeClass
public static void setup() {
try {
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.setCapability("platformName", "Windows");
appCapabilities.setCapability("deviceName", "WindowsPC");
//switch to desktop/root Session
appCapabilities.setCapability("app", "Root");
WindowSession = new WindowsDriver<WindowsElement>(new URL("http://127.0.0.1:4723"), appCapabilities);
WindowSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
//기존코드
Assert.assertNull(session);
actions = new Actions(WindowSession);
modules = new Modules(WindowSession);
session = new Session(WindowSession);
String currentWindowHandle = WindowSession.getWindowHandle();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
@AfterClass
public static void TearDown()
{
Result = null;
if (WindowSession != null) {
WindowSession.quit();
}
WindowSession = null;
}
}
실행 결과
목록의 모든 파일명을 가져와 보여주고 있는 모습이다.
반응형
'지식메모 > 자동화' 카테고리의 다른 글
Winappdriver 에서 sendkeys 키보드 입력이 안되는 문제 해결 (0) | 2021.10.31 |
---|---|
Winappdriver 에서 우클릭 메뉴 클릭하기 (0) | 2019.11.19 |
Winappdriver 주요 기능 사용법 in java (0) | 2019.10.02 |
Windows 10 에서 응용프로그램 AppID 확인하는 방법 (0) | 2019.09.03 |
Winappdriver로 Windows 10 계산기 자동화 테스트(CalculatorTest 튜토리얼 자동화 Java 예제 Eclipse에서 실행하기) (0) | 2019.08.09 |