Dans selenium, je bascule avec succès à un iframe contenant une fenêtre modale: dans cet iframe est un bouton de fenêtre proche qui a cliqué sur "avec succès" mais la fenêtre ne ferme pas. Par succès, je veux dire que le bouton est trouvé à l'aide de XPath et l'action est terminée sans erreur dans mon code. P> C'est ce que j'essaie: p> public newCampaignPage clickCloseTestTourButton(WebDriver driver)
{
delay(5000);
Actions builder = new Actions(driver);
builder.moveToElement(closeTestTourButton).build().perform();
waitForElementAndClick(closeTestTourButton, driver);
return this;
}
3 Réponses :
Essayez en cliquant sur le bouton à l'aide du JavaScript, parfois, les événements ne peuvent pas déclencher avec une clic normal.
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id(<someid>)));
Merci pour votre réponse. Le JS a fermé avec succès la fenêtre, mais immédiatement après que le test a échoué avec org.openqa.selenium.javascriptException: JavasCriPterRor: le document a été déchargé. Des idées?
éventuellement vous êtes commutation em> et tenter de à click () code> trop tôt.
Cliquez sur () Code> sur le Fermer Bouton de fenêtre em> Comme les éléments souhaités sont dans un
Merci pour votre réponse. Malheureusement, cela n'a pas fonctionné. Il "cliqué" le bouton comme avant, mais la fenêtre modale n'a pas fermé. La suggestion JS de supputuri a travaillé dans la fermeture de la fenêtre mais immédiatement après que le test échoue avec org.openqa.selenium.javascriptException: JavasCriPterRor: le document a été déchargé. Des idées?
@RatsStack Il y a quelques choses 1) Vous avez un absolu xpath i> qui peut transformer vos tests flaky. 2) Vous n'avez pas partagé avec nous le HTML, nous ne savons donc pas si le xPath i> vous utilisez identifie l'élément de manière unique 3) pendant que vous utilisez java i> clients, Utilisant JavascriptExecutor i> devrait être votre dernière option mais jamais le premier b>.
D'accord avec ce que vous dites RE JS et aussi XPath. Le XPath est correct comme 1) J'ai testé via chropath et 2) le bouton est en train d'être "cliqué" par la méthode JS. J'utilise ABS XPath afin de vous assurer que je frappe le bon élément. Je vais le rendre plus robuste une fois que je résout cette question.
Désolé re HTML, malheureusement ce n'est pas quelque chose que je peux partager facilement car il contient des informations privées. Je verrai si je peux le manipuler suffisamment pour que je puisse le partager, mais ce sera beaucoup de travail :(
Je n'aime pas répondre à mes propres questions, mais dans ce cas, c'était la seule solution qui a fonctionné:
Actions builder = new Actions(driver); builder.moveToElement(closeTestTourButton).build().perform(); builder.sendKeys(Keys.ENTER).perform();
Peut-être qu'il clique sur un autre élément plutôt ferme () bouton.Can vous postez le HTML?