2015-03-01 10 views
9

मैं एपियम का उपयोग कर पहले से स्थापित ऐप शुरू कर रहा हूं।एपियम का उपयोग करके, परीक्षण के दौरान और परीक्षण के दौरान "गतिविधि की प्रतीक्षा करें" कैसे करें?

मेरे ड्राइवर को प्रारंभ करने के बाद। कुछ गतिविधि प्रदर्शित होने तक मैं इसे चुनाव-इंतजार कैसे करूं?

मैं जब

cap.setCapability("app-wait-activity", "activity-to-wait-for");

क्या कोई अन्य रास्ता नहीं है शुरू केवल इस गतिविधि के लिए प्रतीक्षा करने के लिए जिस तरह से देखा था? प्रारंभ करने पर मैं किसी अन्य विशिष्ट गतिविधि की प्रतीक्षा कैसे करूं? बटन क्लिक करने के बाद कहें?

बस sleep x seconds?

उत्तर

11

विशिष्ट गतिविधि का अर्थ है कि कुछ विशिष्ट तत्व प्रदर्शित किए जा रहे हैं।

WebDriverWait wait = new WebDriverWait(driver, 30); 
wait.until(ExpectedConditions.elementToBeClickable(By 
     .xpath("//android.widget.Button[contains(@text, 'Log In')]"))); 

या: मैं स्क्रीन पर कुछ निश्चित तत्व तक इंतजार करने के लिए निम्न कोड का उपयोग

getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

या बस:

WebDriverWait wait = new WebDriverWait(driver, 30); 
wait.until(ExpectedConditions.presenceOfElementLocated(By 
      .xpath("//android.widget.TextView[contains(@resource-id, 'action_bar_title')]"))); 
1

इसके अलावा, आप निम्नलिखित का उपयोग कर सकता :

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

या निम्न की तरह कुछ:

Thread.sleep(5000); 
2

मैं आपको वेबड्राइवरवाइट का उपयोग करने का सुझाव दूंगा। Thread.Sleep() अपने परीक्षण स्क्रिप्ट

1
WebDriverWait wait = new WebDriverWait(driver,20); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("about_me"))); 

में उपयोग करने के लिए एक अच्छा तरीका है कि आप विस्तार से जानना चाहते हैं कि अंतर्निहित और स्पष्ट इंतजार Appium में इस्तेमाल किया जा सकता है तो इस TUTORIAL

0

यह कर सकते हैं पर जाएँ चाहते हैं नहीं है तत्व का उपयोग कर विभिन्न तरीकों से किया जाना चाहिए। Webdriver इसे लागू करने के लिए "WebDriverWait", "अपेक्षित कंडीशन" कक्षाएं प्रदान करते हैं।

  1. elementSelectionStateToBe: ExpectedConditions वर्ग के रूप में तत्वों प्रतीक्षा करने के लिए पूर्वपरिभाषित की स्थिति के कुछ सेट प्रदान एक तत्व राज्य चयन है।
  2. elementToBeClickable: एक तत्व मौजूद है और क्लिक करने योग्य है।
  3. elementToBeSelected: तत्व का चयन किया जाता
  4. frameToBeAvailableAndSwitchToIt: फ्रेम उपलब्ध है और फ्रेम
  5. का चयन किया। अदृश्यता OfElementLocated: एक तत्व अदृश्य है
  6. उपस्थिति OfAllElementsLocatedBy: वर्तमान तत्व द्वारा स्थित है।
  7. ताज़ा: पृष्ठ रीफ्रेश होने पर किसी विशेष स्थिति की प्रतीक्षा करें।
  8. textToBePresentInElement: पाठ विशेष पर एक तत्व
  9. textToBePresentInElementValue वर्तमान: और तत्व एक
    विशेष तत्व के लिए वर्तमान मूल्य।और कई और अधिक आप इस यूआरएल से गुज़रते हुए अंतर्निहित और स्पष्ट इंतजार लागू करने के लिए और अधिक तरीके सीख सकते हैं: http://roadtoautomation.blogspot.in/2013/10/webdriver-implicit-and-explicit-wait.html

आशा है कि यह मदद करता है ...

1
long startTime = System.currentTimeMillis(); 
while(System.currentTimeMillis() - startTime < Time_Out) 
    if (getDriver().currentActivity().equals(activity)) 
     break; 
1

आप मतदान के लिए निम्न कोड का उपयोग कर सकते हर दूसरी गतिविधि वर्तमान गतिविधि। यदि आप मतदान समय को कम करना चाहते हैं तो आप नींद का समय 500 और wait*2:

public void waitForActivity(String desiredActivity, int wait) throws InterruptedException 
{ 
    int counter = 0; 
    do { 
     Thread.sleep(1000); 
     counter++; 
    } while(driver.currentActivity().contains(desiredActivity) && (counter<=wait)); 

    log("Activity appeared :" + driver.currentActivity(), true); 
} 
संबंधित मुद्दे