C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#とSelenium:要素が存在するまで待つ


明示的な待機を使用して、要素がSeleniumWebdriverに存在するまで待機できます。これは主に、ページで使用できる要素の同期の問題がある場合に使用されます。

WebDriverWaitクラスとExpectedConditionクラスは、明示的な待機の実装に使用されます。 ExpectedConditionクラスのメソッドを呼び出すWebDriverWaitのオブジェクトを作成する必要があります。

Webドライバーは、期待される基準が満たされるまで、指定された時間待機します。時間が経過すると、例外がスローされます。要素が存在するのを待つには、期待される条件–ElementExistsを使用する必要があります。

構文

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

「チュートリアルポイントでのキャリアについて」というテキストがページに表示されるのを待ちましょう-

C#とSelenium:要素が存在するまで待つ

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();
      }
   }
}

出力

C#とSelenium:要素が存在するまで待つ


  1. 要素とテキストを見つけるためのSeleniumとPython?

    Selenium Webdriverを使用して、要素とそのテキストを見つけることができます。まず、id、classname、cssなどのロケーターを使用して要素を特定する必要があります。次に、テキストを取得するには、テキストを使用する必要があります。 メソッド。 構文 s = driver.find_element_by_css_selector("h4").text ここでドライバー webdriverオブジェクトです。メソッドfind_element_by_css_selector cssロケータータイプで要素を識別するために使用され、ロケーター値は引数としてメソッド

  2. ページにSeleniumWebDriverforPythonが読み込まれるまで待ちます。

    ページにSeleniumWebdriverがロードされるまで待つことができます。 同期があります 暗黙的および明示的な待機を説明するSeleniumの概念。ページが読み込まれるまで待機するには、明示的な待機の概念を使用します。 明示的な待機は、要素の特定の動作に対して予想される条件に依存するように設計されています。ページが読み込まれるまで待つために、期待される条件 presents_of_element_loadedを使用します。 特定の要素に対して。待機時間が経過すると、タイムアウトエラーがスローされます。 明示的な待機条件を実装するには、 WebDriverWaitを利用する必要があり