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");