¿Cuántas formas de hacer clic en webElement en WebDriver?
Según tengo entendido, el usuario puede hacer clic en un elemento web particular utilizando el método de clic y una forma más, como usar el método Sendkey con valor ASCII para el clic izquierdo.
By Click Method: driver.findElement(By.cssSelector(".dbl")).click();
By Ascii Value : driver.findElement(By.cssSelector(".dbl")).sendKey("ASCII VALUE FOR Left Click");
Aparte de esto, ¿hay alguna manera de realizar la acción de hacer clic?
Puedes usar:
yourelement.sendKeys(Keys.RETURN)
o .sendKeys(Keys.ENTER)
: que es equivalente a enfocar ese elemento y presionar RETURN/ENTER en ese elemento
Además, existen métodos para hacer esto usando Javacript, pero generalmente no se recomienda:
usando el ejecutor de Javascript no nativo:
((JavascriptExecutor) driver).executeScript("arguments[0].click();", yourelement);
o utilizando la biblioteca Javascript:
JavascriptLibrary jsLib = new JavascriptLibrary();`
jsLib.callEmbeddedSelenium(driver, "triggerMouseEventAt", we, "click", "0,0");
A continuación se muestran algunos métodos que serán útiles para hacer clic en un botón/Imagen.
WebDriver driver = new ChromeDriver();
driver.get("http://newtours.demoaut.com");
WebElement signOnImage = driver.findElement(By.xpath("//input[@type='image'][@name='login']"));
// direct method from the API which is recommended always
signOnImage.click();
1 Usando la tecla de retorno
//signOnImage.sendKeys(Keys.RETURN);
2 Usando JavascriptExecutor
2.1
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", signOnImage);
2.2
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementsByName('login')[0].click()");
3 Uso de la clase Acciones
3.1
Actions actions = new Actions(driver);
actions.click(signOnImage).perform();
3.2
Actions actions = new Actions(driver);
actions.moveToElement(signOnImage).click().perform();
3.3
Actions actions = new Actions(driver);
actions.clickAndHold(signOnImage).release().perform();
3.4
Actions actions = new Actions(driver);
actions.sendKeys(signOnImage, Keys.RETURN).perform();