के लागू और स्पष्ट प्रतीक्षा मिश्रण के कारण का स्पष्टीकरण मैं SeleniumHQ दस्तावेज़ीकरण पढ़ रहा था और निम्नलिखित बयानों में आया था।सेलेनियम दस्तावेज़
"चेतावनी: अंतर्निहित और स्पष्ट प्रतीक्षा न करें। ऐसा करने से अप्रत्याशित प्रतीक्षा समय हो सकता है। उदाहरण के लिए 10s की निहित प्रतीक्षा और 15 सेकंड की स्पष्ट प्रतीक्षा, 20 सेकंड के बाद टाइमआउट होने का कारण बन सकता है। "
किसी कारण से, मुझे यह समझ में नहीं आ रहा है। कुल टाइमआउट 20s मेरे लिए मुख्य भ्रम बिंदु है। क्या कोई समझा सकता है कि मुझे कुछ याद आ रहा है?
संपादित
मेरा प्रश्न उन प्रतीक्षा करता है मिश्रण के कार्यान्वयन/परिणाम के बारे में नहीं है। यह पूरी तरह से दस्तावेज़ पर समय समाप्ति के बयान और गणना के बारे में है।
2 संपादित
ऐसा लगता है कि दस्तावेज़ नीचे परीक्षण के अनुसार सही है। मुझे अभी भी स्पष्टीकरण की आवश्यकता है हालांकि।
बस अंतर्निहित इंतजार
using System;
using System.Diagnostics;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace Test
{
[TestFixture]
public class Test
{
private IWebDriver _webDriver;
[Test]
public void ExplicitVsImplicitWaitTest()
{
_webDriver = new ChromeDriver();
_webDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
_webDriver.Navigate().GoToUrl("https://www.google.com/");
_webDriver.Manage().Window.Maximize();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
try
{
//new WebDriverWait(_webDriver, TimeSpan.FromSeconds(15)).Until(
//ExpectedConditions.ElementExists(By.CssSelector("Should Fail")));
_webDriver.FindElement(By.CssSelector("Should Fail"));
}
catch (NoSuchElementException exception)
//catch (OpenQA.Selenium.WebDriverTimeoutException)
{
stopwatch.Stop();
Console.WriteLine(stopwatch.Elapsed);
}
_webDriver.Quit();
}
}
}
दूसरे में समय: 00: 00: 10,0167290
बस स्पष्ट इंतजार
using System;
using System.Diagnostics;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace Test
{
[TestFixture]
public class Test
{
private IWebDriver _webDriver;
[Test]
public void ExplicitVsImplicitWaitTest()
{
_webDriver = new ChromeDriver();
//_webDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
_webDriver.Navigate().GoToUrl("https://www.google.com/");
_webDriver.Manage().Window.Maximize();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
try
{
new WebDriverWait(_webDriver, TimeSpan.FromSeconds(15)).Until(
ExpectedConditions.ElementExists(By.CssSelector("Should Fail")));
_webDriver.FindElement(By.CssSelector("Should Fail"));
}
//catch (NoSuchElementException exception)
catch (OpenQA.Selenium.WebDriverTimeoutException)
{
stopwatch.Stop();
Console.WriteLine(stopwatch.Elapsed);
}
_webDriver.Quit();
}
}
}
दूसरे मेंदूसरे में समय: 00:00 : 15.2463079
, मिश्रित स्पष्ट और निहित दोनों
using System;
using System.Diagnostics;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace Test
{
[TestFixture]
public class Test
{
private IWebDriver _webDriver;
[Test]
public void ExplicitVsImplicitWaitTest()
{
_webDriver = new ChromeDriver();
_webDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
_webDriver.Navigate().GoToUrl("https://www.google.com/");
_webDriver.Manage().Window.Maximize();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
try
{
new WebDriverWait(_webDriver, TimeSpan.FromSeconds(15)).Until(
ExpectedConditions.ElementExists(By.CssSelector("Should Fail")));
_webDriver.FindElement(By.CssSelector("Should Fail"));
}
//catch (NoSuchElementException exception)
catch (OpenQA.Selenium.WebDriverTimeoutException)
{
stopwatch.Stop();
Console.WriteLine(stopwatch.Elapsed);
}
_webDriver.Quit();
}
}
}
समय: 00: 00: 20,5771817
एसओ पर कई जवाब !!! http://stackoverflow.com/a/15174978/3124333 http://stackoverflow.com/a/28067495/3124333 – SiKing
@SiKing आपके समय के लिए धन्यवाद और ** डाउनवॉइट **। मेरा भ्रम * कार्यान्वयन पर नहीं है * मैं दस्तावेज़ पर ** 20s ** टाइमआउट की गणना के बारे में उलझन में हूं। मैं जानना चाहता था कि वे ** 20 के साथ कैसे आए ** और शायद आपके द्वारा प्रदान किया गया लिंक उसी बात के बारे में बात नहीं करता है जिसके बारे में मैं यहां बात कर रहा हूं – Saifur
@SiKing: मैं मानता हूं कि कई जवाब हैं लेकिन उनमें से कोई भी औचित्य साबित नहीं करता कि कैसे प्रतीक्षा समय की गणना – LittlePanda