tutorial chrome selenium selenium-webdriver

chrome - Las teclas de envío no funcionan en Selenium Webdriver



selenium webdriver python (11)

No puedo poner ningún valor en mi aplicación utilizando el controlador web. Mi aplicación está utilizando marcos.

Puedo borrar el valor de mi cuadro de texto con driver.findElement(By.name("name")).clear(); , pero no puedo poner ningún valor usando driver.findElement(By.name("name")).sendKeys("manish"); . El comando de click funciona para otro botón en la misma página.


Antes de sendkeys () use el método click () [es decir, en su caso: borrar (), haga clic en (), sendKeys ()]

driver.findElement(By.name("name")).clear(); driver.findElement(By.name("name")).click(); // Keep this click statement even if you are using click before clear. driver.findElement(By.name("name")).sendKeys("manish");


Experimenté el mismo problema y pude recopilar la siguiente solución para esto:

  1. Asegúrese de que el elemento esté enfocado -> intente hacer clic primero y luego ingrese una cadena .
  2. Si hay alguna animación para este cuadro de entrada, aplique un poco de espera no estática, puede esperar un elemento que viene después de la animación. (Mi caso)
  3. Puedes probarlo usando la clase Acciones.

Generalmente mantengo una variable temporal. Esto debería funcionar.

var name = element(by.id(''name'')); name.clear(); name.sendKeys(''anything'');

Espero eso ayude.


Hacer clic en el elemento también funciona para mí, sin embargo, otra solución que encontré fue ingresar el valor mediante JavaScript, que no requiere que el elemento esté enfocado:

var _element= driver.FindElement(By.Id("e123")); IJavaScriptExecutor js = (IJavaScriptExecutor)driver; js.ExecuteScript("arguments[0].setAttribute(''value'', ''textBoxValue'')", _element);


Intenta usar Javascript para sendkeys ().

WebElement element = driver.findElement(By.name("name")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", element);

Puede encontrar más información sobre Javascript Executor en Javascript Executor - Selenium


Intente hacer clic en el cuadro de texto antes de enviar claves.

Puede ser que necesites desencadenar un evento en el campo antes de la entrada y con suerte el clic lo hará.


Me he ido con el mismo problema donde copiar y pegar tampoco funciona para ese cuadro de texto. El código de abajo funciona bien para mí

WebDriver driver = new FirefoxDriver(); String mobNo = "99xxxxxxxx"; WebElement mobileElementIrs = driver.findElement(By.id("mobileNoPrimary")); mobileElementIrs.click(); mobileElementIrs.clear(); mobileElementIrs.sendKeys(mobNo);


Primero pase el control del conductor al marco usando ----

driver.switchTo().frame("pass id/name/index/webelement");

Después de eso, realice la operación que desea hacer en el elemento web presente dentro del marco--

driver.findElement(By.name("name")).sendKeys("manish");


También tuve ese problema antes también. Pero entonces lo que hice para que funcione es

myInputElm.click(); myInputElm.clear(); myInputElm.sendKeys(''myString'');


Use javascript para hacer clic en el campo y luego use sendkeys () para ingresar valores. Tuve un problema similar en el pasado con marcos. Javascript es la mejor manera.


Yo también tuve un problema similar, cuando lo usé

getDriver().findElement(By.id(idValue)).clear(); getDriver().findElement(By.id(idValue)).sendKeys(text);

El valor en "texto" no estaba completamente escrito en la entrada, imagino que era " Patrick " algunas veces escribía "P" otra "Pat", ... así que la prueba falló

Lo que hice para solucionarlo fue una solución y usar Javascript

((JavascriptExecutor)getDriver()).executeScript("$(''#"+idValue+"'').val(''"+value+"'');");

Ahora esta bien

En lugar de

driver.findElement(By.id("idValue")).sendKeys("text");

utilizar,

((JavascriptExecutor)getDriver()).executeScript("$(''#"+"idValue"+"'').val(''"+"text"+"'');");

Esto funcionó para mí.