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

Seleniumを使用してJavaScriptを含む複雑なページが読み込まれるのを待ちます。


JavaScriptを含む複雑なページがSeleniumで読み込まれるのを待つことができます。ページが読み込まれた後、Javascriptメソッド document.readyState を呼び出すことができます 完了するまで待ちます 返されます。

構文

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("return document.readyState").toString().equals("complete");

次に、明示的な待機を使用して、ページでアクションの準備ができているかどうかを確認できます 同期の概念。予想される状態を待つことができますpresenceOfElementLocated 要素のために。検証全体をtrycatchブロック内に実装します。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.JavascriptExecutor;
public class PageLoadWt{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
      "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.get("https://www.tutorialspoint.com/index.htm");
      // Javascript Executor to check page ready state
      JavascriptExecutor j = (JavascriptExecutor)driver;
      if (j.executeScript
      ("return document.readyState").toString().equals("complete")){
         System.out.println("Page loaded properly.");
      }
      //expected condition presenceOfElementLocated
      WebDriverWait wt = new WebDriverWait(driver,3);
      try {
         wt.until(ExpectedConditions
         .presenceOfElementLocated
         (By.id("gsc−i−id1")));
         // identify element
         driver.findElement
         (By.id("gsc−i−id1")).sendKeys("Selenium");
      }
      catch(Exception e) {
         System.out.println("Element not located");
      }
      driver.quit();
   }
}

出力

Seleniumを使用してJavaScriptを含む複雑なページが読み込まれるのを待ちます。


  1. Selenium WebDriverとJavaを使用して特定のDIVをスクロールするにはどうすればよいですか?

    Selenium Webdriverを使用して、特定のDIVをスクロールできます。 Seleniumはスクロールを直接処理できません。 Javascript Executorの助けを借ります 特定のDIVにスクロールアクションを実行します。 まず最初に、xpathまたはcssロケーターを使用してスクロールする必要がある特定のDIVを特定する必要があります。次に、JavascriptExecutorの助けを借りてJavascriptコマンドを実行します。メソッドexecuteScript SeleniumでJavascriptコマンドを実行するために使用されます。 scrollIntoVi

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

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