説明
ラベル、ボタン、フォーム、リンクなどのHTMLタグはWebDriverでは要素(WebElement)と呼ばれています。
WebDriverでは要素を取得した後、その要素に対してクリックや文字列入力などのアクションを実行し、テスト自動化を実現してきます。
そのためにはまず、Elementロケータを用いて要素を取得する必要があります。Elementロケータ用いることで、要素を探す方法をSeleniumに指定することができます。
例えば「Selenium Java」のElementロケータは以下になります。
----------------------------------------------------------------------
・By.id(id属性の値を用いて要素を指定する)
・By.name(name属性の値を用いて要素を指定する)
・By.tagName(HTMLタグ名用いて要素を指定する)
・By.className(クラス名を用いて要素を指定する)
・By.linkText(a要素の文字列を用いて要素を指定する)
・By.partialLinkText(a要素の部分文字列を用いて要素を指定する)
・By.cssSelector(CSSセレクタを用いて要素を指定する)
・By.xpath(XPathを用いて要素を指定する)
----------------------------------------------------------------------
上記のようにBy.xxxの部分に要素を取得する為の方法(メソッド)を指定していきます。
ここで、要素取得の流れを以下に示します。
例えばJavaでは要素を取得するためのメソッドに、1つの要素を取得するfindElement()メソッドと、条件に合うすべての要素を取得するfindElements()メソッドがあります。
■WebElement findElement(By by)
→driver.findElement(By.xxx)の形で条件を指定して要素を取得する。
→条件に該当する要素が複数ある場合最初に見つけた要素を返す。
→要素を検出することが出来なかった場合、NoSuchElementException
という例外を発生させる。
■java.util.List<WebElement> findElements(By by)
→driver.findElements(By.xxx)の形で条件を指定して要素を取得する。
→条件に該当する要素が複数ある場合、全てを含むリストが返される。
→要素を検出することが出来なかった場合、空のリストが返される。