How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Input

calendar_today December 31, 0000 person domain selenium

This section contains the APIs related to input commands.

Perform Actions

Selenium v4.17

 Actions selectThreeOptions =
 actions.click(options.get(1)).keyDown(Keys.SHIFT).click(options.get(3)).keyUp(Keys.SHIFT);

 input.perform(windowHandle, selectThreeOptions.getSequences());
/examples/java/src/test/java/dev/selenium/bidirectional/webdriver_bidi/ActionsTest.java
package dev.selenium.bidirectional.webdriver_bidi;

import dev.selenium.BaseTest;
import java.util.List;
import java.util.Map;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.bidi.module.Input;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.interactions.Actions;

class ActionsTest extends BaseTest {
 private Input input;

 private String windowHandle;

 @BeforeEach
 public void setup() {
 FirefoxOptions options = new FirefoxOptions();
 options.setCapability("webSocketUrl", true);
 driver = new FirefoxDriver(options);
 windowHandle = driver.getWindowHandle();
 input = new Input(driver);
 }

 @Test
 void canPerformInputActions() {
 driver.get("https://www.selenium.dev/selenium/web/formSelectionPage.html");

 List<WebElement> options = driver.findElements(By.tagName("option"));

 Actions actions = new Actions(driver);
 Actions selectThreeOptions =
 actions.click(options.get(1)).keyDown(Keys.SHIFT).click(options.get(3)).keyUp(Keys.SHIFT);

 input.perform(windowHandle, selectThreeOptions.getSequences());

 WebElement showButton = driver.findElement(By.name("showselected"));
 showButton.click();

 WebElement resultElement = driver.findElement(By.id("result"));
 Assertions.assertTrue(resultElement.getText().contains("roquefort parmigiano cheddar"));
 }

 @Test
 void canPerformReleaseAction() {
 driver.get("https://www.selenium.dev/selenium/web/bidi/release_action.html");

 WebElement inputTextBox = driver.findElement(By.id("keys"));

 Actions sendLowercase =
 new Actions(driver).keyDown(inputTextBox, "a").keyDown(inputTextBox, "b");

 input.perform(windowHandle, sendLowercase.getSequences());
 ((JavascriptExecutor) driver).executeScript("resetEvents()");

 input.release(windowHandle);

 List<Map<String, Object>> events =
 (List<Map<String, Object>>)
 ((JavascriptExecutor) driver).executeScript("return allEvents.events");
 Assertions.assertEquals("KeyB", events.get(0).get("code"));
 Assertions.assertEquals("KeyA", events.get(1).get("code"));
 }
 }
open_in_new Read original post