トップページ > Selenium API(逆引き) > 【Java】keyDown/moveByOffset/click/perform

【Java】keyDown/moveByOffset/click/perform・・・キーボードを押しながら特定座標をクリックする

「keyDown」「moveByOffset」「click」「perform」を連続で実行することでキーボードを押しながら特定座標をクリックすることが出来ます。

下記サンプルでは、Actionsクラスのインスタンス作成する為に、Actionsクラスのコンストラクタの引数に、対象driverを指定してインスタンスを作成しています。続いて作成したインスタンスに対して各メソッドを実行しています。まずキーボードを押下した状態のままにする「keyDown」。このメソッドは引数に指定したキーを押下したままの状態にします。次に、特定座標にマウスカーソルを移動する「moveByOffset」。このメソッドは、現在のマウスカーソル位置を基点として、どれだけX/Y座標に移動させるかのオフセットを指定していきます。続いて「click」を引数指定なしで実行することで、現在のマウスカーソル位置(moveByOffset実行後のカーソル位置)でクリックしていきます。最後に「perform」を実行することで、これまでのメソッドをビルドした後、上から順に実行していきます。

※アクションについてはこちら

説明

◆メソッド
  ・Actions keyDown(Keys theKey)          :キーボードを押下
  ・Actions moveByOffset(int xOffset, int yOffset)   :指定座標にマウスカーソル移動
  ・Actions click()                   :左クリック
  ・void  perform()                 :処理の実行
◆使用形態
  ・action.keyDown(theKey)
                  .moveByOffset(xOffset, yOffset)
                  .click(element)
                  .perform();
◆備考
  ・特になし
◆関連項目
  ・押下したキーボードを指定したタイミングで離す
  ・要素を特定座標にドラッグする

サンプル

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");
    //リンクテキスト名が画像のリンクを取得
    WebElement element = driver.findElement(By.linkText("画像"));
    Actions action = new Actions(driver);
    //Controlキーを押下しながら"画像"の座標へマウスカーソル移動してクリックする。
    //getLocationは要素の左上隅を指定するため、
    //確実にクリック出来るよう少し座標をずらしている。
    action.keyDown(Keys.CONTROL)
          .moveByOffset(element.getLocation().getX()+5,element
                               .getLocation().getY()+5)
          .click()
          .perform();
  }
}

実行結果

moveByOffset
 ※GoogleおよびGoogleロゴはGoogle Inc.の登録商標であり、同社の許可を得て使用しています。
yajirushi
moveByOffset2

動画デモ

※字幕をONにすると解説のテロップが表示されます※

カテゴリー

Selenium導入

APIリファレンス

その他

ページ上部へ戻る
トップページ > Selenium API(逆引き) > 【Java】keyDown/moveByOffset/click/perform
Copyright © 2016- Seleniumクイックリファレンス All Rights Reserved