सेलेनियम आईडीई - 5 सेकंड के लिए प्रतीक्षा करने की आज्ञा


90

मैं फ़ायरफ़ॉक्स के लिए सेलेनियम आईडीई का उपयोग कर रहा हूं और प्रतीक्षा कमांड की खोज कर रहा हूं। मेरी समस्या यह है कि मैं एक बाहरी बाहरी नक्शे के साथ एक वेबसाइट का परीक्षण करना चाहता हूं। इस बाहरी मानचित्र को लोड करने के लिए 3-5 सेकंड की आवश्यकता होती है।

मेरी आज्ञा:

open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something

जवाबों:


107

ठहराव आदेश का उपयोग करें और लक्ष्य फ़ील्ड में मिलीसेकंड की संख्या दर्ज करें।

गति को सबसे तेज़ पर सेट करें (क्रियाएँ -> सबसे तेज़), अन्यथा यह काम नहीं करेगा।


धन्यवाद! मैंने कमांड डाली, लेकिन सेलेनियम ने विराम नहीं दिया। कमान = ठहराव, मूल्य = १००००
.४

53
के Targetबजाय का उपयोग करें Value। आज्ञा = ठहराव, लक्ष्य = १०००।
खैरुल

1
@Khairul ने कहा कि आपने टिप्पणी की है, यह मुझे पागल बना रहा है कि pause()मैं काम क्यों नहीं करूंगा!
cchana

गति का ठहराव आदेश पर कोई असर नहीं है, यह @Khairul इसके बजाय कहता है: इसे लक्ष्य में रखें।
मंधक

जब आप एक परीक्षण के मामले के अंत में विराम देते हैं जब एक परीक्षण सूट चल रहा है तो यह काम नहीं करेगा
अल्फांसो फर्नांडीज-ओकैंपो

85

यह 5 सेकंड के लिए चीजों में देरी करेगा:

आदेश: ठहराव
लक्ष्य: 5000
मूल्य:

यह 3 सेकंड के लिए चीजों में देरी करेगा:

आदेश: ठहराव
लक्ष्य: 3000
मान:

प्रलेखन:

http://release.seleniumhq.org/selenium-core/1.0/reference.html#pause

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


2
तो, 5 सेकंड के लिए 5000 सेट करें
रिपन अल वसीम

1
यह पागलपन है कि वे लक्ष्य को मिलीसेकेंड में प्रतीक्षा करने के लिए बनाएंगे। इसे प्यार करना। इसे पोस्ट करने के लिए धन्यवाद, क्योंकि मैंने लक्ष्य में मान दर्ज करने का प्रयास नहीं किया।
जॉन जेड

6

साथ काम करने वालों के लिए ant, मैं इसका उपयोग 5 सेकंड के ठहराव को इंगित करने के लिए करता हूं:

<tr>
    <td>pause</td>
    <td>5000</td>
    <td></td>
</tr>

वह है, target: 5000और valueखाली है। जैसा कि संदर्भ इंगित करता है:

कैसे रोक (waittime)

तर्क:

  • वेटटाइम - सोने के समय की मात्रा (मिलीसेकंड में)

निर्दिष्ट समय के लिए प्रतीक्षा करें (मिलीसेकंड में)


4

आपका सबसे अच्छा शर्त शायद है waitForConditionऔर एक जावास्क्रिप्ट फ़ंक्शन लिख रहा है जो मानचित्र लोड होने पर सही रिटर्न देता है।


आपके कमेंट के लिए धन्यवाद! लेकिन क्या अब x सेकंड इंतजार करने का ओओटीबी तरीका है?
लाहिड़ी

1
नहीं, केवल x सेकंड के लिए प्रतीक्षा करने का कोई सीधा तरीका नहीं है। समर्थित आदेशों की पूरी सूची देखें ।
१४:५१

2
x000 सेकंड x सेकंड के लिए रुकेंगे
थंडर रैबिट

1

यह वह होगा जो आप सी # में देख रहे हैं (वेबड्राइवर / सेलेनियम 2.0)

var browser = new FirefoxDriver();
var overallTimeout = Timespan.FromSeconds(10);
var sleepCycle = TimeSpan.FromMiliseconds(50);
var wait = new WebDriverWait(new SystemClock(), browser, overallTimeout, sleepCycle);
var hasTimedOut = wait.Until(_ => /* here goes code that looks for the map */);

और कभी भी Thread.Sleep का उपयोग करें क्योंकि यह आपके परीक्षणों को अविश्वसनीय बनाता है


सेलेनियम 2 में बहुत बेहतर विकल्प
क्रैडैड

0

ठहराव आदेश का उपयोग सीधे HTML प्रारूप में विचारधारा में किया जा सकता है।

यदि जावा या सी का उपयोग करते हुए आप थ्रेड.स्लीप (5000) का उपयोग कर सकते हैं। समय मिलीसेकंड में है। अन्य भाषाएं "स्लीप 5" या टाइम स्लीप (5) का समर्थन करती हैं। आपके पास निर्धारित समय के लिए प्रतीक्षा करने के लिए कई विकल्प हैं।


2
Thread.Sleep एक अच्छा विचार नहीं है और यही कारण है कि सेलेनियम प्रतीक्षा आदिम प्रदान करता है। यदि आप उनका उपयोग करते हैं तो आप बहुत अधिक टाइमआउट मान निर्दिष्ट कर सकते हैं जो परीक्षणों को धीमा किए बिना अधिक विश्वसनीय बनाता है क्योंकि स्थिति का मूल्यांकन किया जा सकता है जितनी बार आवश्यक हो, उदा। प्रत्येक 50 मी।
पावेल पाबिच

थ्रेड में मेरी प्रतिक्रिया। स्लीप केवल सवाल का जवाब देने के लिए संबंधित है कि इसे विचारधारा में प्रतीक्षा कैसे किया जाए। जब आप html से जावा में परिवर्तित हो जाते हैं या विचारधारा में ग के रूप में थ्रेड का अनुवाद हो जाता है।
जट

0

कमांड clickAndWaitको निम्नलिखित कोड जोड़ने से पहले लिपि प्रतीक्षा करेगी, जब तक कि विशिष्ट लिंक दिखाई न दे:

   <tr>
        <td>waitForVisible</td>
        <td>link=do something</td>
        <td></td>
    </tr>

ठहराव के बजाय प्रतीक्षा आदेशों का उपयोग करने का अभ्यास कई बार अधिक कुशल और अधिक स्थिर होता है।


0

यह तब तक प्रतीक्षा करेगा जब तक आपका लिंक दिखाई नहीं देता, और तब आप इसे क्लिक कर सकते हैं।

Command: waitForElementPresent Target: link=do something Value:


0

जो मैंने पाया है कि मैं जिस साइट के लिए परीक्षण करता हूं वह यह है:

waForCondition | selenium.browserbot.getUserWindow ()। $। सक्रिय == 0 | 20000

Klendathu


0

क्रोम में, "सेलेनियम आईडीई" के लिए, मैं भी संघर्ष कर रहा था कि यह विराम नहीं देता है। यह विराम देगा, यदि आप नीचे दिए गए हैं:

  • आज्ञा: ठहराव
  • लक्ष्य: रिक्त
  • मूल्य: 10000

यह 10 सेकंड के लिए विराम देगा।


1
लक्ष्य 10000 होना चाहिए और मूल्य रिक्त होना चाहिए
सिरमसेल्फ

निश्चित नहीं है कि आप किस ब्राउज़र के प्लगइन की कोशिश कर रहे हैं, लेकिन क्रोम में मेरे लिए यह ठीक है। यह भी निर्भर करता है कि आप किस एक्सटेंशन का उपयोग कर रहे हैं।
टेकसिंह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.