How to use Sendkeys() without finding element on web page when element is already focused and waiting for input How to use Sendkeys() without finding element on web page when element is already focused and waiting for input selenium selenium

How to use Sendkeys() without finding element on web page when element is already focused and waiting for input


Alternatively you can use the ROBOT function as a workaround.For example: to send 123456 you may use

Robot robot = new Robot();      robot.keyPress(KeyEvent.VK_1);robot.keyRelease(KeyEvent.VK_1);robot.keyPress(KeyEvent.VK_2);robot.keyRelease(KeyEvent.VK_2);robot.keyPress(KeyEvent.VK_3);robot.keyRelease(KeyEvent.VK_3);robot.keyPress(KeyEvent.VK_4);robot.keyRelease(KeyEvent.VK_4);robot.keyPress(KeyEvent.VK_5);robot.keyRelease(KeyEvent.VK_5);robot.keyPress(KeyEvent.VK_6);robot.keyRelease(KeyEvent.VK_6);robot.keyPress(KeyEvent.VK_ENTER);robot.keyRelease(KeyEvent.VK_ENTER);

I have also used the Sikuli sendkeys feature in the past succesfully.


Use below code for the same :

driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);

I have tried the demo and its fine

public static void main(String[] args) throws InterruptedException {        System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");        WebDriver driver = new ChromeDriver();        driver.get("https://www.google.com");        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);        driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);        Thread.sleep(1000);        driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);        Thread.sleep(1000);        driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);        Thread.sleep(1000);        driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);        Thread.sleep(1000);        driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);        System.out.println("OK");    }