Le sélénium pilotes Web & Java. L'élément n'est pas cliquable au point (x, y). Autre élément reçoit le clic
J'ai utilisé explicite attend et j'ai l'avertissement:
org.openqa.le sélénium.WebDriverException:
L'élément n'est pas cliquable au point (36, 72). Autre élément recevoir
cliquez sur: ...
Commande de la durée ou de l'expiration: 393 millisecondes
Si j'utilise Thread.sleep(2000)
je ne reçois pas tous les avertissements.
@Test(dataProvider = "menuData")
public void Main(String btnMenu, String TitleResultPage, String Text) throws InterruptedException {
WebDriverWait wait = new WebDriverWait(driver, 10);
driver.findElement(By.id("navigationPageButton")).click();
try {
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(btnMenu)));
} catch (Exception e) {
System.out.println("Oh");
}
driver.findElement(By.cssSelector(btnMenu)).click();
Assert.assertEquals(driver.findElement(By.cssSelector(TitleResultPage)).getText(), Text);
}
Êtes-vous à l'aide de la version Chrome 61+?
j'utilise Firefox 47.0.1 et seleniumWebDriver 2.51.0
Sur la ligne obtenez-vous l'erreur? Merci
En ligne: pilote.findElement(Par.id("navigationPageButton")).cliquez sur();
Cette erreur signifie que, il y a un autre élément de la superposition de l'élément cible (fixe/absolu placé de superposition) ou le z-index est trop faible. Cela pourrait être causé par des effets de survol à l'aide de transitions (plus lent que le minimum de délai d'attente, dans ce cas 393ms). vous devez attendre pour
j'utilise Firefox 47.0.1 et seleniumWebDriver 2.51.0
Sur la ligne obtenez-vous l'erreur? Merci
En ligne: pilote.findElement(Par.id("navigationPageButton")).cliquez sur();
Cette erreur signifie que, il y a un autre élément de la superposition de l'élément cible (fixe/absolu placé de superposition) ou le z-index est trop faible. Cela pourrait être causé par des effets de survol à l'aide de transitions (plus lent que le minimum de délai d'attente, dans ce cas 393ms). vous devez attendre pour
#navigationPageButton
pour devenir visible (ou cliquable à l'aide de elementToBeClickable()
pour que l'élément de trop) ou de vérifier si toutes les conditions sont réunies pour que le bouton est cliquable.OriginalL'auteur Maria | 2017-07-04
Vous devez vous connecter pour publier un commentaire.
WebDriverException: l'Élément n'est pas cliquable au point (x, y)
C'est un typique
org.openqa.le sélénium.WebDriverException
qui s'étendjava.lang.RuntimeException
.Les champs de cette exception sont les suivants :
BASE_SUPPORT_URL
:protected static final java.lang.String BASE_SUPPORT_URL
DRIVER_INFO
:public static final java.lang.String DRIVER_INFO
SESSION_ID
:public static final java.lang.String SESSION_ID
Sur votre cas d'utilisation, l'erreur dit tout :
Il est clair à partir de votre bloc de code que vous avez défini le
wait
commeWebDriverWait wait = new WebDriverWait(driver, 10);
mais vous appelez leclick()
méthode sur l'élément avant de laExplicitWait
entre en jeu que dansuntil(ExpectedConditions.elementToBeClickable)
.Solution
L'erreur
Element is not clickable at point (x, y)
peut résulter de différents facteurs. Vous pouvez vous adresser à eux par l'une des procédures suivantes:1. Élément à ne pas obtenir cliqué en raison de JavaScript ou de l'AJAX appels présent
Essayez d'utiliser
Actions
Classe:2. Élément à ne pas obtenir cliqué comme il n'est pas dans Fenêtre d'affichage
Essayez d'utiliser
JavascriptExecutor
pour amener l'élément dans la Fenêtre d'affichage:3. La page actualisée avant l'élément est cliquable.
Dans ce cas, induire
ExplicitWait
je.eWebDriverWait
comme mentionné au point 4.4. L'élément est présent dans le DOM, mais pas cliquable.
Dans ce cas, induire
ExplicitWait
avecExpectedConditions
ensemble deelementToBeClickable
pour l'élément cliquable:5. L'élément est présent, mais ayant des aménagements temporaires.
Dans ce cas, induire
ExplicitWait
avecExpectedConditions
ensemble deinvisibilityOfElementLocated
de la Superposition d'être invisible.6. L'élément est présent, mais ayant permanent de Superposition.
Utilisation
JavascriptExecutor
pour envoyer le cliquez directement sur l'élément.Vous avez parcouru beaucoup de possibilités dans lequel seuls les 5 et 6 sont de bonne façon de gérer l'erreur mentionné. Les quatre premiers lancers différents erreur, pour laquelle la solution que vous avez donné ne fonctionne pas. Pour un exemple le point numéro 3 est en fait un état de l'élément de problème qui ne fonctionne pas, même si combien de temps vous attendez avec elementToBeClickble méthode. Qui doit être traitée différemment.
OriginalL'auteur DebanjanB
Dans le cas où vous avez besoin de l'utiliser avec Javascript
On peut utiliser des arguments[0].cliquez sur() pour simuler le clic.
merci man, vous avez sauvé mon temps.
OriginalL'auteur Rester Test
Vous pouvez essayer
Êtes-vous d'obtenir la même erreur?
Oui: org.openqa.le sélénium.WebDriverException: l'Élément n'est pas cliquable au point (36, 72). Autre élément reçoit le clic: <div tabindex="0" class="serveur-ui-lock"></div> Commande de la durée ou de l'expiration: 70 millisecondes
essayez ce qui suit
WebElement element = driver.findElement(By.id("navigationPageButton")); Actions actions = new Actions(driver); actions.moveToElement(element).click().perform();
Si j'ai l'aide de Fil.Dormir alors tout le travail. Mais j'ai l'aide d'Attendre que tout échoue.
OriginalL'auteur fg78nc
Je suis tombé sur cette erreur lors de la tentative de cliquer sur un élément (ou de ses superposition, je n'ai pas de soins), et les autres réponses ne fonctionne pas pour moi. Je le fixe à l'aide de la
elementFromPoint
API DOM pour trouver l'élément Sélénium voulait que je clic sur place:J'ai aussi eu des situations où un élément a été déplacement, par exemple, parce qu'un élément au-dessus de la page était en train de faire une animation de développer ou réduire. Dans ce cas, cette Condition Attendue classe aidé. Vous lui donnez l' éléments qui sont animés, pas ceux que vous souhaitez, cliquez. Cette version ne fonctionne que pour les animations jQuery.
OriginalL'auteur rescdsk
Faites défiler la page vers le près de par point mentionné dans l'exception a fait l'affaire pour moi. Ci-dessous est extrait de code:
REMARQUE: - je utiliser Facebook php webdriver
OriginalL'auteur Sudheesh.M.S