في تطوير الويب باستخدام Selenium مع C# وعلى متصفح Internet Explorer، يصبح التنقل بين نوافذ متعددة أحد التحديات الشائعة. يهدف هذا النص إلى توضيح كيف يمكنك تحقيق هذا الهدف بشكل فعال باستخدام Selenium WebDriver ولغة البرمجة C#.
قبل الشروع في الشرح، يجب التأكد من أنك قد قمت بتثبيت Selenium WebDriver لـ C# وتكوينه بشكل صحيح في مشروعك. بالإضافة إلى ذلك، تأكد من أنك تستخدم إصدارًا من Internet Explorer يتوافق مع Selenium.
للبداية، يمكنك فتح متصفح IE باستخدام Selenium في C#:
csharpIWebDriver driver = new InternetExplorerDriver();
ثم يمكنك فتح الصفحة الأولى والنقر على زر LOGIN للانتقال إلى النافذة الثانية:
csharpdriver.Navigate().GoToUrl("رابط الصفحة الأولى");
IWebElement loginButton = driver.FindElement(By.Id("loginButton"));
loginButton.Click();
الآن، بعد الانتقال إلى النافذة الثانية، يمكنك إدخال بيانات الاعتماد والنقر على زر NEXT:
csharpdriver.SwitchTo().Window(driver.WindowHandles.Last());
IWebElement usernameInput = driver.FindElement(By.Id("username"));
usernameInput.SendKeys("اسم المستخدم");
IWebElement passwordInput = driver.FindElement(By.Id("password"));
passwordInput.SendKeys("كلمة المرور");
IWebElement nextButton = driver.FindElement(By.Id("nextButton"));
nextButton.Click();
بعد ذلك، يمكنك تكرار هذه الخطوات للانتقال إلى النوافذ التالية باستخدام driver.SwitchTo().Window()
والعثور على العناصر والنقر عليها وما إلى ذلك.
يرجى مراعاة أن الأمر driver.WindowHandles.Last()
يستخدم للتحول إلى آخر نافذة تم فتحها، ويمكن تعديله وفقًا لترتيب النوافذ التي يتم فتحها.
عند الانتهاء من تنفيذ العمليات في النوافذ المتعددة، يمكن إغلاق المتصفح بواسطة:
csharpdriver.Quit();
مع هذا، يمكنك تنفيذ عمليات التنقل بين النوافذ المتعددة على متصفح Internet Explorer باستخدام Selenium مع لغة البرمجة C#.
المزيد من المعلومات
بالطبع، دعنا نوسع المحتوى لتوفير مزيد من المعلومات حول كيفية التنقل بين النوافذ المتعددة باستخدام Selenium مع C# على Internet Explorer.
عند التعامل مع تبديل بين النوافذ، يمكنك استخدام driver.WindowHandles
للوصول إلى جميع معرفات النوافذ المفتوحة. الشيء المهم هو تذكير بأن Selenium يعتبر كل نافذة منفصلة، وبالتالي يجب عليك التحكم في التبديل بينها بشكل صحيح.
على سبيل المثال، بعد فتح النافذة الثانية، يمكنك القيام بالتبديل إليها باستخدام:
csharpdriver.SwitchTo().Window(driver.WindowHandles.Last());
وهكذا ستقوم بالتحول إلى آخر نافذة تم فتحها. يمكنك أيضًا استخدام معرف النافذة المحددة من خلال تخزين driver.WindowHandles
في قائمة:
csharpList<string> windowHandles = driver.WindowHandles.ToList();
driver.SwitchTo().Window(windowHandles[1]); // للانتقال إلى النافذة الثانية
بالنسبة للنقل بين النوافذ الأخرى، يمكنك تكرار هذه العمليات باستخدام الأوامر المناسبة. على سبيل المثال، لتحريكك إلى النافذة الثالثة:
csharpdriver.SwitchTo().Window(windowHandles[2]); // للانتقال إلى النافذة الثالثة
وهكذا تواصل العملية حتى تكمل التنقل بين جميع النوافذ حسب حاجتك.
تأكد أيضًا من أنك تستخدم معرفات العناصر بشكل فعال باستخدام By
class في Selenium لتحديد العناصر بطريقة دقيقة. يمكنك استخدام مثل By.Id
أو By.Name
أو أي استراتيجية أخرى تتناسب مع هيكل صفحتك.
في الختام، يمكن لهذه الطريقة مع Selenium وC# أن تسهل بشكل كبير التحكم في النوافذ المتعددة والتفاعل مع العناصر المختلفة داخلها. استمتع ببرمجة تجربة تصفح فعالة وموثوقة!