À l'aide de JavascriptExecutor à sendKeys plus cliquez sur web élément
Je suis en train d'ouvrir un lien dans un nouvel onglet, puis de passer à cet onglet, dans le navigateur Firefox, en utilisant le sélénium en Java. C'est ma compréhension que, pour ce faire, j'ai besoin d'utiliser un envoyer la combinaison de touches.
Afin d'ouvrir le lien dans la même fenêtre, j'ai été en utilisant quelque chose comme ceci:
WebElement we = driver.findElement(By.xpath("//*[@id='btn']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", we);
Ci-dessus a fonctionne pour moi.
Maintenant, je vais essayer aussi de sendKeys, comme ci-dessous, qui ne fonctionne pas:
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("keyDown(Keys.CONTROL)
.keyDown(Keys.SHIFT)
.click(arguments[0])
.keyUp(Keys.CONTROL)
.keyUp(Keys.SHIFT);", we);
Des conseils? Je ne peux pas comprendre la syntaxe correcte pour sendKeys pour JavascriptExecutor. J'ai vu quelques solutions similaires à l'aide d'Actions, mais cela n'a pas fonctionné pour moi.
En fait, si j'utilise
new Actions(driver).keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).click(we).keyUp(Keys.CONTROL).keyUp(Keys.SHIFT).perform();
, alors le lien est ouvert dans le onglet. Je ne peux pas comprendre comment faire ce travail correctement.Pourquoi voulez-vous exécuter sendKeys à l'aide d'Actions ou JavascriptExecutor? Plaine de Sélénium WebElement ne fonctionne pas?
OriginalL'auteur Clark Henry | 2015-07-26
Vous devez vous connecter pour publier un commentaire.
essayer de code ci-dessous pour ouvrir un lien sur la page de nouvel onglet & passer à cet onglet. Effectuer des opérations il & revenir à la première page pour la poursuite de l'exécution.
OriginalL'auteur Deepak