Selenium-ロケーター
Selenium WebDriverでの要素の検索は、WebDriverおよびWebElementクラスによって提供されるfindElement()およびfindElements()メソッドを使用して実行されます。
findElement()は、指定された検索条件に基づいてWebElementオブジェクトを返すか、検索条件に一致する要素が見つからない場合は例外をスローします。
findElements()は、検索条件に一致するWebElementのリストを返します。要素が見つからない場合は、空のリストを返します。
次の表に、SeleniumWebDriverで要素を検索するためのすべてのJava構文を示します。
方法 | 構文 | 説明 |
---|---|---|
ID別 | driver.findElement(By.id(<要素ID>)) | ID属性を使用して要素を検索します |
名前で | driver.findElement(By.name(<要素名>)) | Name属性を使用して要素を検索します |
クラス名別 | driver.findElement(By.className(<要素クラス>)) | Class属性を使用して要素を検索します |
タグ名で | driver.findElement(By.tagName(<htmltagname>)) | HTMLタグを使用して要素を検索します |
リンクテキスト | driver.findElement(By.linkText(<linktext>)) | リンクテキストを使用してリンクを検索します |
部分的なリンクテキストによる | driver.findElement(By.partialLinkText(<linktext>)) | リンクの部分的なテキストを使用してリンクを検索します |
CSSによる | driver.findElement(By.cssSelector(<cssセレクター>)) | CSSセレクターを使用して要素を検索します |
XPathによる | driver.findElement(By.xpath(<xpath>)) | XPathクエリを使用して要素を検索します |
ロケーターの使用法
ここで、の助けを借りて、各ロケーターメソッドの実際の使用法を理解しましょう。 https://www.calculator.net
ID別
ここでは、IDを使用してオブジェクトにアクセスします。この場合、それはテキストボックスのIDです。ID(cdensity)を使用してsendkeysメソッドを使用して、テキストボックスに値を入力します。
driver.findElement(By.id("cdensity")).sendKeys("10");
名前で
ここでは、名前を使用してオブジェクトにアクセスします。この場合、それはテキストボックスの名前です。ID(cdensity)を使用してsendkeysメソッドを使用して、テキストボックスに値を入力します。
driver.findElement(By.name("cdensity")).sendKeys("10");
クラス名別
ここでは、クラス名を使用してオブジェクトにアクセスします。この場合、これはWebElementのクラス名です。値には、gettextメソッドを使用してアクセスできます。
List<WebElement> byclass = driver.findElements(By.className("smalltext smtb"));
タグ名別
要素のDOMタグ名を使用して、WebDriverでその特定の要素を見つけることができます。この方法を使用すると、テーブルを非常に簡単に処理できます。次のコードを見てください。
WebElement table = driver.findElement(By.id("calctable"));
List<WebElement> row = table.findElements(By.tagName("tr"));
int rowcount = row.size();
リンクテキストによる
このメソッドは、表示されているテキストが一致するリンク要素を見つけるのに役立ちます。
driver.findElements(By.linkText("Volume")).click();
部分的なリンクテキストによる
このメソッドは、部分的に一致する表示テキストを持つリンク要素を見つけるのに役立ちます。
driver.findElement(By.partialLinkText("Volume")).click();
CSSによる
CSSはWebオブジェクトを識別する方法として使用されますが、すべてのブラウザがCSS識別をサポートしているわけではありません。
WebElement loginButton = driver.findElement(By.cssSelector("input.login"));
XPathによる
XPathはXMLパス言語の略です。XMLドキュメントからノードを選択するためのクエリ言語です。XPathは、XMLドキュメントのツリー表現に基づいており、さまざまな基準を使用してノードを選択することにより、ツリー内を移動する機能を提供します。
driver.findElement(By.xpath(".//*[@id = 'content']/table[1]/tbody/tr/td/table/tbody/tr[2]/td[1]/input")).sendkeys("100");