1

UC 브라우저의 설치를 자동화하려고합니다. 나는 마지막 "Enter UC"버튼 (아래 스크린 샷) 버튼 활동에 도달 할 수 있습니다. "Enter UC" 버튼을 클릭 시뮬레이션해야합니다.ucbrowser 설치 자동화

나는 여러 가지 방법 (아래에 나열)을 시도하여 클릭을 시뮬레이션했지만 아무 것도 효과가 없었습니다.

1) UIautomator 덤프 사용 - 덤프를 가져 와서 구문 분석하여 바운드를 가져 오려고했지만 adb shell uiautomator dump을 사용하여 덤프를 가져올 때 전체 UI 계층 구조를 가져올 수 없습니다. 네이티브 뷰만의 UI - 포인터가 있으면 알려주세요.)

덤프 :

<?xml version="1.0" encoding="UTF-8" standalone="true"?> 

-<hierarchy rotation="0"> 


-<node bounds="[0,38][480,800]" selected="false" password="false" long-clickable="false" scrollable="false" focused="false" focusable="false" enabled="true" clickable="false" checked="false" checkable="false" content-desc="" package="com.UCMobile.intl" class="android.widget.FrameLayout" resource-id="" text="" index="0"> 

<node bounds="[0,38][480,800]" selected="false" password="false" long-clickable="false" scrollable="false" focused="false" focusable="false" enabled="true" clickable="true" checked="false" checkable="false" content-desc="" package="com.UCMobile.intl" class="android.view.View" resource-id="" text="" index="0" NAF="true"/> 

</node> 

</hierarchy> 

2.) 나는 요소를 얻고 탭을 시도 할 수 있도록 모든 리소스 ID/텍스트/특별한 덤프를보고 시도하지만 ID/클래스/텍스트가없는 "Enter UC"버튼이 있습니다.

제안 사항이 있으면 알려 주시기 바랍니다. (덤프에서 볼 수 있듯이)

[1]: https://i.stack.imgur.com/LCQYl.png

+0

당신이 덤프를 게재 할 수 있습니까? 단추가 WebView 안에 있습니까? –

+0

예 버튼이 webView 내부에만있는 것 같습니다. – luckycse

+0

덤프로 질문을 XML 형식과 스크린 샷으로 편집했습니다. – luckycse

답변

0

UC 브라우저는 그것의 구성 요소에 대한 통찰력을 얻을 수 UiAutomator 또는 유사한 도구 불가능합니다 사용자 정의보기와의 UI를 구현합니다.

그 후에 많은 대안이 없습니다. AndroidViewClient/culebra 또는 CulebraTester을 사용하여 첫 번째 화면을 스 와이프 할 수 있지만 마지막 화면에 도달하면 화면 좌표를 사용하여을 터치해야합니다 ().

Touch Point (x,y)

생성 된 스크립트 (이 경우 파이썬하지만 당신은 또한 생성 할 수 있습니다 자바) :

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 
''' 
Copyright (C) 2013-2016 Diego Torres Milano 
Created on 2017-05-06 by CulebraTester 
         __ __ __ __ 
        /\/\/\/\ 
____________________/ __\/ __\/ __\/ __\_____________________________ 
___________________/ /__/ /__/ /__/ /________________________________ 
        |/\ /\ /\ /\ \___ 
        |/ \_/ \_/ \_/ \ o \ 
              \_____/--< 
@author: Diego Torres Milano 
@author: Jennifer E. Swofford (ascii art snake) 
''' 


import re 
import sys 
import os 


import unittest 
try: 
    sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) 
except: 
    pass 

import pkg_resources 
pkg_resources.require('androidviewclient>=12.4.0') 
from com.dtmilano.android.viewclient import ViewClient, CulebraTestCase 
from com.dtmilano.android.uiautomator.uiautomatorhelper import UiAutomatorHelper, UiScrollable, UiObject, UiObject2 

TAG = 'CULEBRA' 


class CulebraTests(CulebraTestCase): 

    @classmethod 
    def setUpClass(cls): 
     cls.kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False} 
     cls.kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': True, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True} 
     cls.options = {'start-activity': None, 'concertina': False, 'device-art': None, 'use-jar': False, 'multi-device': False, 'unit-test-class': True, 'save-screenshot': None, 'use-dictionary': False, 'glare': False, 'dictionary-keys-from': 'id', 'scale': 1, 'find-views-with-content-description': True, 'window': -1, 'orientation-locked': None, 'save-view-screenshots': None, 'find-views-by-id': True, 'log-actions': False, 'use-regexps': False, 'null-back-end': False, 'auto-regexps': None, 'do-not-verify-screen-dump': True, 'verbose-comments': False, 'gui': False, 'find-views-with-text': True, 'prepend-to-sys-path': False, 'install-apk': None, 'drop-shadow': False, 'output': None, 'unit-test-method': None, 'interactive': False} 
     cls.sleep = 5 

    def setUp(self): 
     super(CulebraTests, self).setUp() 

    def tearDown(self): 
     super(CulebraTests, self).tearDown() 

    def preconditions(self): 
     if not super(CulebraTests, self).preconditions(): 
      return False 
     return True 

    def testSomething(self): 
     if not self.preconditions(): 
      self.fail('Preconditions failed') 

     _s = CulebraTests.sleep 
     _v = CulebraTests.verbose 

     self.vc.click(x=520, y=1603) 
     self.vc.sleep(_s) 

if __name__ == '__main__': 
    CulebraTests.main() 
+0

"마지막에 도달하면 화면 좌표를 사용하여 터치해야합니다." -이 말은 좌표를 하드 코딩해야 함을 의미합니다. 또는 함수를 사용하여 버튼의 좌표를 가져올 수 있습니다. 하드 코드 할 경우 스 와이프 및 스 와이프에 대해 동일한 작업을 수행 할 수 있습니다. – luckycse

+0

예, 화면 좌표를 사용하여 스 와이프 할 수 있습니다. https://github.com/dtmilano/AndroidViewClient/blob/master/src/com/dtmilano/android/viewclient.py#L3818 –