ウェブ要素の操作

フォームコントロールを操作するための高レベルの命令セット。

要素に対して実行できる基本的なコマンドは 5 つだけです。

  • click (すべての要素に適用)
  • send keys (テキストフィールドとコンテンツ編集可能な要素にのみ適用)
  • clear (テキストフィールドとコンテンツ編集可能な要素にのみ適用)
  • submit (フォーム要素にのみ適用)
  • select (「選択リスト要素」を参照)

追加の検証

これらのメソッドは、ユーザーのエクスペリエンスを綿密にエミュレートするように設計されているため、Actions API とは異なり、指定されたアクションを試行する前に 2 つのことを実行しようとします。

  1. 要素がビューポートの外にあると判断した場合、要素をビューにスクロールします。具体的には、要素の下部をビューポートの下部に揃えます。
  2. アクションを実行する前に、要素がインタラクティブであることを確認します。これは、スクロールが失敗したか、要素がそれ以外に表示されていないことを意味する可能性があります。要素がページに表示されているかどうかを判断することは、webdriver 仕様で直接定義するには困難すぎたため、Selenium は、要素が表示されないようにするものをチェックする JavaScript atom を使用して execute コマンドを送信します。要素がビューポートにない、表示されていない、キーボード操作可能でない、またはポインタ操作可能でないと判断した場合、要素がインタラクティブでないエラーを返します。

クリック

要素のクリックコマンドは、要素の中心で実行されます。要素の中心が何らかの理由で遮られている場合、Selenium は要素のクリックがインターセプトされたエラーを返します。

        driver.get("https://selenium.dokyumento.jp/selenium/web/inputs.html");

	    // Click on the element 
        WebElement checkInput=driver.findElement(By.name("checkbox_input"));
        checkInput.click();
    # Navigate to URL
    driver.get("https://selenium.dokyumento.jp/selenium/web/inputs.html")

    # Click on the checkbox
    check_input = driver.find_element(By.NAME, "checkbox_input")
    check_input.click()
            // Navigate to Url
	            driver.Navigate().GoToUrl("https://selenium.dokyumento.jp/selenium/web/inputs.html");
	            // Click on the element 
	            IWebElement checkInput = driver.FindElement(By.Name("checkbox_input"));
	            checkInput.Click();
    driver.find_element(name: 'color_input').click
    await submitButton.click();
    // Navigate to Url
    driver.get("https://selenium.dokyumento.jp/selenium/web/inputs.html")

    // Click the element
    driver.findElement(By.name("color_input")).click();
  
  

キーを送信

要素のキー送信コマンドは、提供されたキーを編集可能な要素に入力します。通常、これは要素が text タイプのフォームの input 要素であるか、content-editable 属性を持つ要素であることを意味します。編集可能でない場合、無効な要素の状態エラーが返されます。

こちらは、WebDriver がサポートする可能性のあるキーストロークのリストです。

        // Clear field to empty it from any previous data
        WebElement emailInput=driver.findElement(By.name("email_input"));
        emailInput.clear();
	    //Enter Text
        String email="admin@localhost.dev";
	    emailInput.sendKeys(email);
    # Handle the email input field
    email_input = driver.find_element(By.NAME, "email_input")
    email_input.clear()  # Clear field
    
    email = "admin@localhost.dev"
    email_input.send_keys(email)  # Enter text
            //SendKeys
	            // Clear field to empty it from any previous data
	            IWebElement emailInput = driver.FindElement(By.Name("email_input"));
	            emailInput.Clear();
	            //Enter Text
	            String email = "admin@localhost.dev";
	            emailInput.SendKeys(email);
    driver.find_element(name: 'email_input').send_keys 'admin@localhost.dev'
      let inputField = await driver.findElement(By.name('no_type'));
  
    // Navigate to Url
    driver.get("https://selenium.dokyumento.jp/selenium/web/inputs.html")

	//Clear field to empty it from any previous data
	driver.findElement(By.name("email_input")).clear()
	
    // Enter text 
    driver.findElement(By.name("email_input")).sendKeys("admin@localhost.dev")
  
  

クリア

要素のクリアコマンドは、要素の内容をリセットします。これには、要素が編集可能であり、リセット可能である必要があります。通常、これは要素が text タイプのフォームの input 要素であるか、content-editable 属性を持つ要素であることを意味します。これらの条件が満たされない場合、無効な要素の状態エラーが返されます。

        //Clear Element
        // Clear field to empty it from any previous data
        emailInput.clear();
            //Clear Element
	            // Clear field to empty it from any previous data
	            emailInput.Clear();
	            data = emailInput.GetAttribute("value");
    driver.find_element(name: 'email_input').clear
      await driver.get('https://selenium.dokyumento.jp/selenium/web/inputs.html');
  
    // Navigate to Url
    driver.get("https://selenium.dokyumento.jp/selenium/web/inputs.html")

	//Clear field to empty it from any previous data
	driver.findElement(By.name("email_input")).clear()
	
  
  

送信

Selenium 4 では、これはもはや個別のエンドポイントで実装されておらず、スクリプトを実行することで機能します。そのため、このメソッドを使用せず、代わりに該当するフォーム送信ボタンをクリックすることをお勧めします。