WebElement :: sendKeys de Java Selenium (4.0.0-alpha-4), je me suis un peu bloqué.Keys préparés ont le même contenu que SHIFT / LEFT_SHIFTSi vous souhaitez effectuer un keyDown à l'aide de Selenium en Java, écrivez le code suivant.
public void sendKey(WebDriver webDriver, CharSequence... keys) {
  WebElement element = webDriver.findElement(By.className("hoge"))
  element.sendKeys(keys);
}
WebElement.sendKeys prend CharSequence ... ʻen tant qu'argument, mais utilise souvent l'énumération fournieKeys`.
Cependant, soyez prudent si vous souhaitez utiliser les mêmes touches de fonction à gauche et à droite, telles que la touche Shift droite / la touche Shift gauche.
L'implémentation de enumKeys est la suivante.
SHIFT / LEFT_SHIFT sont définis respectivement, mais malheureusement, le comportement de la touche Shift gauche se comportera indépendamment de celle qui est envoyée.
Keys.java
public enum Keys implements CharSequence {
  ...
  SHIFT        ('\uE008'),
  LEFT_SHIFT   (Keys.SHIFT),
  CONTROL      ('\uE009'),
  LEFT_CONTROL (Keys.CONTROL),
  ALT          ('\uE00A'),
  LEFT_ALT     (Keys.ALT),
  LEFT         ('\uE012'),
  ARROW_LEFT   (Keys.LEFT),
  UP           ('\uE013'),
  ARROW_UP     (Keys.UP),
  RIGHT        ('\uE014'),
  ARROW_RIGHT  (Keys.RIGHT),
  DOWN         ('\uE015'),
  ARROW_DOWN   (Keys.DOWN),
  ...
}
«Keys» implémente «CharSequence», et le constructeur et l'implémentation de «toString ()» sont les suivants.
Keys.java
public enum Keys implements CharSequence {
  ...
  private final char keyCode;
  private final int codePoint;
  Keys(Keys key) {
    this(key.charAt(0));
  }
  Keys(char keyCode) {
    this.keyCode = keyCode;
    this.codePoint = String.valueOf(keyCode).codePoints().findFirst().getAsInt();
  }
  ...
  @Override
  public String toString {
    return String.valueOf(keyCode);
  }
}
En outre, WebElement.sendKeys combine uniquement les codes de clé donnés avec des sauts de ligne et les envoie à WebDriver.
Par conséquent, il sera reconnu normalement en le spécifiant avec une chaîne de caractères comme indiqué ci-dessous sans utiliser le KeyCode défini dans Keys.SHIFT.
  WebElement element = webDriver.findElement(By.className("hoge"))
  element.sendKeys("ShiftRight");
        Recommended Posts