es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo ingresar texto en el área de texto en Selenium.

Quiero introducir texto aquí (como imagen adjunta)

Ya intenté usarlo, pero no funciona:
– sendkeys
Obtengo este error cuando uso sendkeys >> org.openqa.selenium.ElementNotInteractableException: elemento no interactuable

  • argumentos (JS)

    Los argumentos se muestran a continuación:

    JavascriptExecutor executor = (JavascriptExecutor) getDriver();
    WebElement el = getDriver().findElement(element);
    executor.executeScript(“arguments[0].click();”, el);
    executor.executeScript(“arguments[0].value='”+ word +”‘;”, el);

elemento
Estructura HTML

<div class="col-sm-12 form-group"><div class="wrapper">note</div><textarea name="note" class="form-control" placeholder="Notas" data-testid="input-notes-on-create"></textarea></div>

Localizador

By.cssSelector("div.col-md-7 form div.form-group:nth-child(3) > textarea.form-control");

o

By.xpath("//button[@data-testid='input-notes-on-create']");

¿Alguna idea de por qué pasó esto? Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error ElementNotInteractableException puede ocurrir cuando el elemento con el que estás intentando interactuar no se encuentra en un estado que permita la interacción del usuario, como estar oculto o desactivado. En el caso del método “sendkeys”, también puede ser debido a un problema con el localizador del elemento.

    Una solución que podrías intentar es asegurarte primero de que el elemento esté visible y habilitado antes de intentar interactuar con él a través del método sendkeys. Por ejemplo, podrías usar el siguiente código:

    WebElement el = getDriver().findElement(element);
    if (el.isDisplayed() && el.isEnabled()) {
        el.sendKeys("tu texto aquí");
    } else {
        System.out.println("Elemento no visible o habilitado");
    }
    

    Otra opción que podrías probar es utilizar un método diferente para interactuar con el elemento, como el método “setValue” proporcionado por la biblioteca Selenium Chromedriver:

    WebElement el = getDriver().findElement(element);
    ChromeDriverHelper.setValue(el, "tu texto aquí");
    

    Como alternativa, el enfoque JS que proporcionaste podría funcionar si se modifica ligeramente. Podrías intentar usar el método “setAttribute” del elemento para establecer su valor:

    JavascriptExecutor executor = (JavascriptExecutor)getDriver();
    WebElement el = getDriver().findElement(element);
    
    executor.executeScript("arguments[0].setAttribute('value', '" + word + "')", el);
    

    En general, es importante asegurarse de que el elemento se encuentre en un estado que permita la interacción del usuario antes de intentar introducir texto en él, y de utilizar un método que funcione con el estado actual del elemento.

Comments are closed.