2017-12-21 37 views
1

Android 테스트를 처음 사용했습니다. 현재 시나리오를 자동화하려고합니다. 나는 응용 프로그램 화면의 스냅 샷을 첨부 :하이브리드 앱에서 인식 요소 - Android

enter image description here

시나리오 : 나는 "시계에서"클릭해야

  1. .
  2. 화면이 스냅 샷에 표시된대로 아래에서 슬라이드됩니다.
  3. 화살표로 표시된 항목을 선택해야합니다.

개발자가 하이브리드 앱이라고 말합니다. "Clock In"을 클릭 할 수 있기 때문에 많은 혼란이 왔습니다. 그러나 "DL 380 Memory Upgrade"를 선택할 수는 없습니다.

을 의혹 :

  1. 방법 "DL 380 메모리 업그레이드는"웹보기/기본에 있는지 여부를 찾는 방법은?
  2. 웹 뷰의 요소 인 경우 어떻게 찾습니까? I은 아래의 "시계"를 위치한 다음 당신은 컨텍스트를 사용 가능한 뷰를 확인 할 수 있으며 사용으로 전환 할 수

    @AndroidFindBy(xpath = "//android.view.View[@resource-id='tab-t0-0']") private AndroidElement clockInTabBtn;

+0

지금 어떤 문맥을 사용하고 있습니까? –

+0

@EugeneS 나는 webview를 사용하기 시작했고 계속 진행할 수있었습니다. –

답변

0

WebView의 요소 인 경우 이고 아무 것도 찾을 수 없습니다. 웹에서 검색하는 동안 resource-id - 고유 속성 만 사용합니다.

하이브리드 응용 프로그램 디버깅을 위해 chrome dev 도구를 사용하는 것이 좋습니다. 공식 docs을 읽을 수 있습니다. 기본적으로

이 필요합니다

  • 크롬 브라우저에서 chrome://inspect/#devices로 이동

    1. 연결 장치를 팝업 크롬이에 대한 inspect을 발견하고 클릭 webViews 무엇
    2. 검사를 나타나는 경우
    3. 체크 전화 &은 USB 디버깅을 허용 하나 필요 enter image description here
    4. 이제 elem을 검색합니다. 엔트과 로케이터 당신이 실제로 웹보기 내부 검색하기 전에 enter image description here
    5. 이 appium 테스트에서 웹보기에 스위치 컨텍스트 잊지 마세요 당신이 Selenum/웹 자동화에서와 같은 방법으로.

    행운을 빈다.

  • +0

    @dmie 하이브리드 앱을 테스트하기 위해 어떤 특정 기능이 있습니까? Chrome 관련 사항은 무엇입니까? –

    +0

    기본적으로'platformName','deviceName','app','appWaitActivity','appWaitPackage'로 충분하지 않습니다. 그러나 앱 시작 즉시 웹보기로 전환하려면'autoWebview'를 true로 설정할 수 있습니다 – dmle

    0

    코드 :

    Set<string> contextNames = driver.getContextHandles(); 
    for (String contextName : contextNames) 
    { 
    System.out.println(contextNames); 
    //To swicth to webview 
    if (contextName.contains("WEBVIEW")){ 
    driver.context(contextName); 
    } 
    } 
    

    유사한이 스레드를 참조하십시오 문제 : https://github.com/appium/appium/issues/7243