En primer lugar, disculpas por un título tan malo, sugiero amablemente un buen título.
Aquí están los detalles sobre mi problema que estoy enfrentando:
Sitio web: https://www.desmos.com/calculator/lzidy3m70r
Pasos:
Problema: no se puede interactuar con ninguna de las áreas de texto de centro, ancho y alto. Sigue obteniendo el elemento para la excepción interactuable
Como puede ver, no hay una etiqueta de entrada para el campo de ancho, solo 2 intervalos muestran 15 por separado y el área de texto tampoco se puede interactuar
Aquí está mi xpath para identificar textarea o span:
//textarea[contains(@class,'dcg-smart-textarea') and text()='"+imageName+"']/parent::div/parent::div/following-sibling::div//span[@class='dcg-mq-textarea']/textarea //textarea[contains(@class,'dcg-smart-textarea')]/parent::div/parent::div/following-sibling::div//span[@class='dcg-mq-root-block dcg-mq-editing-overflow-right']/spanHe intentado muchas maneras, como hacer clic primero en el div y una vez que el cursor está disponible, intentar escribir o hacer clic primero, luego borrar y luego escribir, pero después de hacer clic correctamente, el siguiente paso falla con un elemento de excepción que no se puede interactuar.
Estoy pensando que se requiere javascriptexecutor para manejar este caso de alguna manera, pero no estoy muy al tanto de javascript y las formas de manejar dichos campos.
¿Puede alguien ayudarme a resolver este problema y poder ingresar con éxito los valores para los campos de centro, ancho y alto?
No necesita el ejecutor de JavaScript para este caso.
Usando el siguiente xpath
//div[text()='Center:']//following-sibling::divPuede ubicar todos los elementos web relacionados con los campos div para el centro, el ancho y la altura.
Ahora, para ubicar el primer elemento, estoy usando la indexación xpath:
(//div[text()='Center:']//following-sibling::div)[1]Esto apuntará primero al campo central.
Además, tendremos que borrar el valor predeterminado que ya está presente en ese div, para eso tenemos el ciclo.
Código:
driver.manage().window().maximize(); WebDriverWait wait = new WebDriverWait(driver, 30); //driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.get("https://www.desmos.com/calculator/lzidy3m70r"); Actions action = new Actions(driver); WebElement centerWebElement = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(//div[text()='Center:']//following-sibling::div)[1]"))); centerWebElement.click(); for (int i = 0; i<=10 ; i++) { action.moveToElement(centerWebElement).sendKeys(Keys.BACK_SPACE).build().perform(); Thread.sleep(100); System.out.println("Clicked on delete for "+ i + " time"); } new Actions(driver).moveToElement(centerWebElement).pause(2).sendKeys("2021, 2021").build().perform();De la misma manera, para el primer ancho
(//div[text()='Center:']//following-sibling::div)[3]y para primera altura
(//div[text()='Center:']//following-sibling::div)[7]debería ayudarte a superar el problema.