Comment écrire le code Java Selenium pour doubleClick()
sur un enregistrement à l'aide d'un pilote Web?
J'ai affiché quelques enregistrements dans la partie du corps. Une fois que j'ai cliqué sur un enregistrement, nous devrions avoir une fenêtre contextuelle pour le mettre à jour.
Veuillez suggérer comment écrire du code Java Selenium à l’aide du pilote Web.
J'ai essayé le code suivant:
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//table/tbody/tr[2]/td/div/div/table/tbody/tr[10]/td[1]"))).doubleClick().build().perform();
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//table/tbody/tr[2]/td/div/div/table/tbody/tr[10]/td[1]"))).doubleClick().perform();
Ce code fonctionne !!!
Utilisez Actions class pour effectuer des actions de la souris et du clavier sur WebElements à l'aide de WebDriver.
Actions action = new Actions(driver);
WebElement element=driver.findElement(By.linkText("TEST"));
//Double click
action.doubleClick(element).perform();
//Mouse over
action.moveToElement(element).perform();
//Right Click
action.contextClick(element).perform();
Vous devez utiliser la classe Actions()
car elle inclut une action "double-clic".
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.linkText("Test"))).doubleClick().build().perform();
Essayez ce code:
Actions action = new Actions(driver);
WebElement btnElement=driver.findElement("Locator of element"));
action.doubleClick(btnElement).build().perform();
WebElement element = driver.findElement(selector);
Actions builder = new Actions(driver);
builder.doubleClick(element).perform();
J'ai implémenté la solution de Ran (immédiatement au-dessus de mon post). J'écris en Java avec Eclipse et utilise Selenium WebDriver.
Il y a 2 importations dont vous aurez besoin:
import org.openqa.Selenium.WebElement;
import org.openqa.Selenium.interactions.Actions;
Ensuite, j'ai implémenté le code de la manière suivante:
WebElement element = driver.findElement(By.xpath("/html/body/div[1]/div/div/div[2]/div[1]/div[3]/div[8]/div[2]/div/div[2]/div/table/tbody/tr[2]"));
Actions builder = new Actions(driver);
builder.doubleClick(element).perform();
Merci à Ran! Cela faisait plusieurs heures que je me débattais avec celui-ci. Invoquer le simple clic deux fois ne fonctionne pas pour moi - trop de temps entre les événements à capturer par le navigateur testé en double-clic.
Et au cas où aucune action supplémentaire ne soit liée à un seul clic, vous pouvez utiliser:
driver.findElement(By.xpath("%youXPath%"))).click;
driver.findElement(By.xpath("%youXPath%"))).click;
En fait, cela devrait fonctionner dans la plupart des cas (sauf que vous avez des paramètres de double-clic système personnalisés)
Vous pouvez utiliser Actions class de WebDriver pour effectuer des actions composites telles que Double-clic, glisser-déposer, survol de la sourisetc.
// Crée une instance de la classe Actions en transmettant l'instance de pilote actuelle.
Actions builder = new Actions(driver);
Voie 1:
// Obtient un objet de classe Action contenant une action/un ensemble d'actions
Action action = builder.doubleClick(element);
// Construit l'ensemble des actions/actions simples à l'aide de build () et s'exécute sur un navigateur à l'aide de la méthode perform ().
action.build().perform();
Voie 2:
// Appelle les méthodes build () et perform () directement sur l'instance de la classe Actions
builder.doubleClick().build().perform();