2013-02-09 25 views
6

को स्पर्श नहीं करता है मुझे एंड्रॉइड ऐप का परीक्षण करने की आवश्यकता है जिसमें बटन के साथ वेबव्यू शामिल है।Monkeyrunner वेबव्यू

Monkeyrunner WebView को छोड़कर ऐप के सभी हिस्सों के लिए ठीक काम करता है। वेबव्यू में बटन बस मकररुनर से छूने को अनदेखा करता है। मुझे लगता है कि बटन क्लिक किया गया है क्योंकि यह भूरा हो गया है लेकिन फिर बटन कुछ भी नहीं करता है। यदि मैं वास्तविक डिवाइस पर एमुलेटर या उंगली पर माउस का उपयोग करता हूं तो बटन बहुत अच्छा काम करता है।

मैं लॉगकैट से देखता हूं कि स्पर्श ईवेंट ऐप पर भेजा गया था लेकिन ऐप से कोई कार्रवाई नहीं है।

कुछ कोड:

final WebView w = (WebView) findViewById(R.id.webView1); 
String summary = "<html><body><b>Google</b><form action=http://google.com><input type=submit><input type=text></form></body></html>"; 
w.loadData(summary, "text/html", null); 

लेआउट:

<Button android:id="@+id/button1" android:text="Click me!" /> 
<WebView android:id="@+id/webView1" /> 

Monkeyrunner py:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice 
device = MonkeyRunner.waitForConnection(10) 
# android.widget.Button COORDINATES - THIS WORKS FINE 
device.touch(10,100, 'DOWN_AND_UP') 
# WEBVIEW BUTTON COORDINATES - BUTTON DOESN'T WORK 
device.touch(200,200, 'DOWN_AND_UP') 

मैं अलग से नीचे की कोशिश की थी उत्तर प्रदेश में देरी - एक ही परिणाम। पायथन से या जावा के अंदर से मकररुनर भी काम नहीं करता है। ChimpChat जैसे monkeyrunner के लिए फ्लेवर्स और रैपर काम नहीं करते हैं।

मुझे लगता है कि यह काम करना चाहिए क्योंकि बहुत से वेब/HTML5 ऐप्स हैं और यह सच नहीं हो सकता है कि उन सभी का परीक्षण नहीं किया जाता है। लेकिन यह विपरीत दिखाई देता है। वेब व्यू घटकों के लिए स्पर्श ईवेंट को लागू करने के लिए कोई विचार या सुझाव?

+0

क्या आप किसी डिवाइस या एमुलेटर पर परीक्षण कर रहे हैं? –

+0

कम से कम यह एमुलेटर होना चाहिए। मैं दोनों पसंद करते हैं। – Alex

+0

यह मेरे लिए एक डिवाइस पर (जैसा है) है लेकिन एमुलेटर पर विफल रहता है। –

उत्तर

3

यह एक बग जो मैं एंड्रॉयड टीम को दे दी थी: यहाँ लिंक अगर आप भी इसे आजमाना चाहते हैं है। कुछ लोगों ने इसकी पुष्टि की थी। हालांकि समय के साथ यह एक और बग के साथ विलय कर दिया गया था और बाद में एक और बग बंद कर दिया गया था "डिजाइन के रूप में काम करता है"। सौभाग्य से कुछ अगले एंड्रॉइड संस्करणों के बाद यह काम करना शुरू कर दिया क्योंकि इसे करना था।

0

मैंने आपके द्वारा प्रदान किए गए नमूना कोड का परीक्षण किया है और मैं बिना किसी समस्या के वेबव्यू कंट्रोल पर टच इवेंट करने में सक्षम था।

  • सुनिश्चित करें कि स्पर्श सही स्थान पर है बनाओ ध्यान दें स्पर्श समारोह स्क्रीन पिक्सल का उपयोग करता है और डुबकी जो सबसे अधिक संभावना नहीं होगा कि,: कुछ तरीके कि मुझे लगता है कि के बारे में सोच सकता है यह आपके लिए काम कर देगा रहे हैं जब आप एकाधिक उपकरणों पर परीक्षण करने का प्रयास करते हैं तो अलग रहें। आप अपने देवता के साथ आने वाले "देव उपकरण" ऐप में "पॉइंटर स्थान" का उपयोग करके बटन का सटीक स्थान प्राप्त कर सकते हैं।
  • आप यूआई नेविगेट करने के लिए स्पर्श ईवेंट की बजाय कीबोर्ड ईवेंट का उपयोग कर सकते हैं। उदाहरण के लिए, आपके द्वारा प्रदत्त नमूना एप्लिकेशन इस तरह किया जा सकता है:

    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice 
    device = MonkeyRunner.waitForConnection(10) 
    device.press('KEYCODE_DPAD_DOWN') 
    device.press('KEYCODE_DPAD_CENTER') 
    

    और वांछित प्रभाव

0

यह एक जवाब है, लेकिन मैं हालांकि यह मदद कर सकता है नहीं है का उत्पादन करेगा।

स्क्वायर ने "चम्मच" नामक एक नया उपकरण परीक्षण ढांचा जारी किया। यह आपको वह सब कुछ करने की अनुमति देता है जो आप चाहें और यह मेरे द्वारा चलाए गए कुछ परीक्षणों पर बहुत अच्छी तरह से काम करता है। मैंने वेबव्यू की कोशिश की है लेकिन मुझे लगता है कि इसे भी कवर करना चाहिए। यह जेक व्हार्टन (एक्शनबैरशॉक के पीछे लड़का) द्वारा बनाया गया था।

http://square.github.com/spoon/