এটি স্থিতিশীল না হওয়া পর্যন্ত এইচটিএমএল পোলিংয়ের আপনার ধারণাটি আমি পছন্দ করি। আমি এটি আমার নিজের সমাধানে যুক্ত করতে পারি। নিম্নলিখিত পদ্ধতির সি # তে রয়েছে এবং jQuery প্রয়োজন।
আমি একটি সাফল্যফ্যাক্টর (সাস) পরীক্ষার প্রকল্পের বিকাশকারী যেখানে আমাদের বিকাশকারীদের উপর বা ওয়েব পৃষ্ঠার পিছনে ডিওএমের বৈশিষ্ট্যগুলির কোনও প্রভাব নেই। সাস পণ্যটি তার অন্তর্নিহিত ডিওএম নকশাটি বছরে 4 বার সম্ভাব্যভাবে পরিবর্তন করতে পারে, তাই স্লেইনিয়ামের সাথে পরীক্ষা করার জন্য শক্তিশালী, পারফরম্যান্স পদ্ধতিতে (স্থায়ীভাবে যেখানে সেলেনিয়ামের সাথে পরীক্ষা না করা সহ!
"পৃষ্ঠা প্রস্তুত" এর জন্য আমি যা ব্যবহার করি তা এখানে। এটি বর্তমানে আমার নিজের সমস্ত পরীক্ষায় কাজ করে। একই পদ্ধতি কয়েক বছর আগে একটি বড় ইন-হাউস জাভা ওয়েব অ্যাপ্লিকেশনটির জন্যও কাজ করেছিল এবং আমি প্রকল্পটি ছাড়ার সময় এক বছরেরও বেশি সময় ধরে দৃ .় ছিল।
Driver
ওয়েবড্রাইভার উদাহরণ যা ব্রাউজারের সাথে যোগাযোগ করে
DefaultPageLoadTimeout
টিক্সের একটি সময়সীমা মান (টিকিট প্রতি 100ns)
public IWebDriver Driver { get; private set; }
const int GlobalPageLoadTimeOutSecs = 10;
static readonly TimeSpan DefaultPageLoadTimeout =
new TimeSpan((long) (10_000_000 * GlobalPageLoadTimeOutSecs));
Driver = new FirefoxDriver();
এরপরে, পদ্ধতিতে অপেক্ষা করার ক্রমটি নোট করুন PageReady
(সেলেনিয়াম ডকুমেন্ট প্রস্তুত, অ্যাজাক্স, অ্যানিমেশন), আপনি যদি এটির বিষয়ে চিন্তা করেন তবে তা বোঝায়:
- কোডযুক্ত পৃষ্ঠাটি লোড করুন
- কোথাও থেকে অ্যাজাক্সের মাধ্যমে ডেটা লোড করতে কোডটি ব্যবহার করুন
- সম্ভবত অ্যানিমেশন সহ ডেটা উপস্থাপন করুন
দৃ D়তার অন্য স্তর যুক্ত করতে আপনার ডোম তুলনা পদ্ধতির মতো 1 থেকে 2 এর মধ্যে ব্যবহার করা যেতে পারে।
public void PageReady()
{
DocumentReady();
AjaxReady();
AnimationsReady();
}
private void DocumentReady()
{
WaitForJavascript(script: "return document.readyState", result: "complete");
}
private void WaitForJavascript(string script, string result)
{
new WebDriverWait(Driver, DefaultPageLoadTimeout).Until(
d => ((IJavaScriptExecutor) d).ExecuteScript(script).Equals(result));
}
private void AjaxReady()
{
WaitForJavascript(script: "return jQuery.active.toString()", result: "0");
}
private void AnimationsReady()
{
WaitForJavascript(script: "return $(\"animated\").length.toString()", result: "0");
}