Solución:
Intente establecer una espera implícita de quizás 10 segundos.
gmail.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
O establezca una espera explícita. Una espera explícita es el código que define para esperar a que ocurra una determinada condición antes de continuar en el código. En su caso, es la visibilidad del campo de entrada de contraseña. (Gracias al comentario de ainlolcat)
WebDriver gmail= new ChromeDriver();
gmail.get("https://www.gmail.co.in");
gmail.findElement(By.id("Email")).sendKeys("abcd");
gmail.findElement(By.id("next")).click();
WebDriverWait wait = new WebDriverWait(gmail, 10);
WebElement element = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.id("Passwd")));
gmail.findElement(By.id("Passwd")).sendKeys("xyz");
Explicación: La razón por la que selenium no puede encontrar el elemento es porque la identificación del campo de entrada de contraseña está inicialmente oculta por contraseña. Después de hacer clic en el botón “Siguiente”, Google primero verifica la dirección de correo electrónico ingresada y luego muestra el campo de entrada de contraseña (cambiando la identificación de Passwd-hidden a Passwd). Entonces, cuando el campo de contraseña aún está oculto (es decir, Google aún está verificando la identificación del correo electrónico), su controlador web comienza a buscar el campo de entrada de contraseña con id Passwd que aún está oculto. Y por lo tanto, se lanza una excepción.
Intente seleccionar el campo de contraseña como este.
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement passwordElement = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#Passwd")));
passwordElement.click();
passwordElement.clear();
passwordElement.sendKeys("123");
También puede probar xpath completo, tuve un problema similar en el que tuve que hacer clic en un elemento que tiene una función de propiedad de javascript onclick. el método xpath completo funcionó y no se lanzó ninguna excepción interactiva.