¿Cuántas formas de hacer clic en webElement en WebDriver?

Resuelto SacTan asked hace 8 años • 6 respuestas

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?

SacTan avatar Mar 03 '16 18:03 SacTan
Aceptado

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");
Prateek avatar Mar 03 '2016 11:03 Prateek

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();
Ramakrishna Jangatisetty avatar Sep 06 '2018 07:09 Ramakrishna Jangatisetty