2013-07-18 3 views
7

मैं एक आईओएस ऐप का परीक्षण कर रहा हूं, और लॉग इन करने के बाद तत्वों के साथ बातचीत नहीं कर सकता क्योंकि एपियम बहुत तेज़ हो रहा है।एपियम और रूबी का उपयोग करते हुए आईओएस ऐप का परीक्षण करते समय तत्व लोड होने की प्रतीक्षा करें?

क्या कोई मुझे ऐपियम आईओएस परीक्षण की प्रतीक्षा करने के लिए WebDriverWait शैली का उपयोग करने के उदाहरण के बारे में बता सकता है? रूबी में पसंदीदा रूप से।

धन्यवाद।

+0

:

इसके अलावा, आप समय समाप्ति सेट कर सकते हैं। – jdrm

+0

मैं भी वही चीज़ ढूंढ रहा हूं। एंड्रॉइड के लिए, 'browser.driver.manage.timeouts.page_load = 30' जैसे कुछ काम करने लगते हैं। आईओएस पर एक त्रुटि यह कहती है कि एपियम ने इसे लागू नहीं किया है ... –

उत्तर

13

यह मेरे लिए काम किया, लेकिन मैं Appium

को नया हूँ
+0

मेरे लिए ठीक काम किया। धन्यवाद!! – bkone

+1

यह एक अच्छा उदाहरण है यदि आप निश्चित हैं कि तत्व 10 सेकंड में लोड होगा। अन्यथा (उदा। नाम बदल गया है, या पर्याप्त समय नहीं है) यह अपवाद फेंक देगा सेलेनियम :: वेबड्राइवर :: त्रुटि :: NoSuchElementError: कोई तत्व नहीं मिला और आपको इसे किसी भी तरह से बचाया जाना चाहिए। – Clergyman

+0

'नींद (10)' इस तरह के समान है। यह अलग कैसे है? –

3

मैं appium जावा में इस समाधान का उपयोग करें:

  • Thread.sleep(1000);

  • WebDriverWait wait = new WebDriverWait(driver, 30); wait.until(ExpectedConditions.elementToBeClickable(By.name("somename")));

5

यहां मैं आया हूं, लेकिन जावा में। थोड़ा सा खींचा गया लेकिन यह आपको कैसे इंतजार करना चाहिए इसके माध्यम से चलता है। यह सेकंड में प्रतीक्षा समय लेगा और फिर यह देखने के लिए हर दूसरे की जांच करें कि तत्व अभी तक मौजूद है या नहीं। एक बार यह तत्व स्थापित हो जाने पर यह सुनिश्चित करता है कि यह दिखाई दे रहा है ताकि इसे बातचीत की जा सके। "चालक" स्पष्ट रूप से वेब ड्राइव ऑब्जेक्ट है।

public void waitForVisible(final By by, int waitTime) { 
    wait = new WebDriverWait(driver, timeoutInSeconds); 
    for (int attempt = 0; attempt < waitTime; attempt++) { 
     try { 
      driver.findElement(by); 
      break; 
     } catch (Exception e) { 
      driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS); 
     } 
    } 
    wait.until(ExpectedConditions.visibilityOfElementLocated(by)); 
} 
+0

पूछे गए रूबी नहीं, लेकिन मैं जावा के बाद था इसलिए मैं खुश हूं;) –

5

मैं इस निर्माण का उपयोग कुछ तत्व दिखाई देता है प्रतीक्षा करने के लिए:

wait_true { exists { find_element(:xpath, path_to_element) } } 
बेशक

, आप न केवल :xpath से पा सकते हैं। या तो गहरे लाल रंग का या js में बिल्कुल वही बात के लिए खोज रहे

wait_true(timeout) { exists { find_element(:xpath, path_to_element) } } 
संबंधित मुद्दे