Computer >> Máy Tính >  >> Lập trình >> C#

C # và Selenium:Chờ cho đến khi phần tử hiện diện

Chúng tôi có thể đợi cho đến khi một phần tử có trong Selenium webdriver bằng cách sử dụng chờ rõ ràng. Nó chủ yếu được sử dụng bất cứ khi nào có vấn đề đồng bộ hóa để một phần tử có sẵn trên trang.

Các lớp WebDriverWait và dự kiến ​​được sử dụng để triển khai chờ một cách rõ ràng. Chúng ta phải tạo một đối tượng của WebDriverWait, đối tượng này sẽ gọi ra các phương thức của lớp Mong đợi.

Webdriver đợi một khoảng thời gian cụ thể để đáp ứng các tiêu chí mong đợi. Sau khi thời gian trôi qua, một ngoại lệ sẽ được ném ra. Để đợi một phần tử hiện diện, chúng ta phải sử dụng điều kiện mong đợi - ElementExists.

Cú pháp

WebDriverWait w = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
w.Until(ExpectedConditions.ElementExists(By.TagName("h1")));

Chúng ta hãy thử đợi văn bản - Giới thiệu về Nghề nghiệp tại Điểm Hướng dẫn có trên trang -

C # và Selenium:Chờ cho đến khi phần tử hiện diện

Ví dụ

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
namespace NUnitTestProject2{
   public class Tests{
      String url ="https://www.tutorialspoint.com/about/about_careers.htm";
      IWebDriver driver;
      [SetUp]
      public void Setup(){
         //creating object of FirefoxDriver
         driver = new FirefoxDriver("");
      }
      [Test]
      public void Test2(){
         //URL launch
         driver.Navigate().GoToUrl(url);
         //identify element then click
         IWebElement l = driver.FindElement(By.XPath("//*[text()='Careers']"));
         l.Click();
         //expected condition of ElementExists
         WebDriverWait w = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
         w.Until(ExpectedConditions.ElementExists(By.TagName("h1")));
         //identify element then obtain text
         IWebElement m = driver.FindElement(By.TagName("h1"));
         Console.WriteLine("Element text is: " + m.Text);
      }
      [TearDown]
      public void close_Browser(){
         driver.Quit();
      }
   }
}

Đầu ra

C # và Selenium:Chờ cho đến khi phần tử hiện diện