「tagName」の引数にタグ名を指定することで要素を取得することが出来ます。
下記のサンプルでは、タグ名が「input」のリンク要素を取得しています。しかし、タグ名が「input」の要素は複数存在している為、findElementsで該当する要素を全て取得した後、title属性が"検索"の文字列の要素を指定することで、検索テキストボックスの要素を取得しています。
※要素取得の詳細についてはこちら
説明
◆メソッド ・public static By tagName(java.lang.String tagName) ◆使用形態 ・By.tagName("tagName") ◆備考 ・引数に取得したい要素で使われているタグ名を指定することで、要素を取得出来る ◆関連項目 ・xpathから要素を取得する ・cssセレクタから要素を取得する
サンプル
import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class WebTest{ public static void main(String[] args){ //Chrome制御のためChromeDriverのパスを指定 System.setProperty("webdriver.chrome.driver", "D:\\AutoTest\\chromedriver.exe"); //Chromeを起動する WebDriver driver = new ChromeDriver(); //指定したURLに遷移する driver.get("https://www.google.co.jp"); //タグ名がinputの要素を全て取得 List<WebElement> elems = driver.findElements(By.tagName("input")); String eleText = "検索"; //全てのinput要素の中からtitle属性が"検索"の文字列を探す。 //存在した場合は(検索テキストボックスに)Seleniumと入力する for(WebElement ele : elems){ if(eleText.equals(ele.getAttribute("title"))){ ele.sendKeys("Selenium"); break; } } } }
※selenium version 4.1.4で動作確認をしています(ブラウザのUIや属性値などが変更された場合、実行結果が異なる可能性があります)
実行結果
動画デモ
※字幕をONにすると解説のテロップが表示されます※