J'utilise Selenium pour le script de test. Je reçois l'erreur suivante et cette erreur se produit de manière aléatoire. Quand je cours 10 fois, je l’ai deux fois. Donc, ce n'est pas vraiment reproductible. Est-ce que quelqu'un sait pourquoi cela se passe? L'élément sur lequel je tente de cliquer est clairement visible dans le navigateur et ne se déplace pas. Il n'est donc pas nécessaire de redimensionner ou de faire glisser l'élément. J'utilise chrome webdriver et je lis d'autres stratégies de dépannage ( Débogage "erreur [Point n'est cliquable au point" erreur ] et elles ne semblent pas pertinentes pour mon problème. J'ai attendu assez de temps aussi.
UnknownError: unknown error: Element is not clickable at point (167, 403). Other element would receive the click: <div class="leftMasterBackground"></div>
Vous pouvez effectuer plusieurs étapes pour améliorer la stabilité en cliquant sur différents éléments de l'interface utilisateur:
Est-ce que cela a aidé la stabilité?
WebDriverWait wait = new WebDriverWait(driver, 3)
JavascriptExecutor js = ((JavascriptExecutor) driver)
//presence in DOM
wait.until(ExpectedConditions.presenceOfElement(By.id("ID")));
//scrolling
WebElement element = driver.findElement(By.id("ID")));
js.executeScript("arguments[0].scrollIntoView(true);", element);
//clickable
wait.until(ExpectedConditions.elementToBeClickable(By.id("ID")));
De plus, si vous décidez de remplacer la valeur par défaut Actions par une interface plus personnalisée, vous pouvez utiliser deux types de clics (par exemple): click()
qui comportera toutes les étapes de stabilité et fastClick()
qui sera le clic par défaut sans toute varification.
Je faisais également face au même problème avec Chrome. J'ai résolu ce problème en mettant une ligne de code avant de cliquer sur l'élément:
scrollToViewElement(driver,xpath);
J'ai résolu en attrapant l'exception et en la gérant comme ceci:
WebDriver driver = new ChromeDriver();
WebElement element = driver.findElement(By.id("ID"));
boolean clicked = false;
do{
try {
element.click();
} catch (WebDriverException e) {
continue;
} finally {
clicked = true;
}
} while (!clicked);
cliquez sur l'élément parent de l'élément sur lequel vous souhaitez cliquer. cela peut être une solution de contournement seulement.
J'ai eu le même problème en raison d'un de spinner qui cachait l'élément.
J'ai donné xpath et cela a résolu le problème. D'autres personnes ont suggéré de 1. faire défiler 2. Sleep a également fonctionné pour elles.
Cela se produit parfois dans mes scripts Katalon Studio. Ce que j'ai trouvé très efficace, c'est d'utiliser JavaScript pour cliquer sur ces éléments:
@Keyword
def clickUsingJS(TestObject to, int timeout) {
try {
WebUI.click(to)
}
catch (Exception e) {
WebDriver driver = DriverFactory.getWebDriver()
WebElement element = WebUiCommonHelper.findWebElement(to, timeout)
JavascriptExecutor executor = ((driver) as JavascriptExecutor)
executor.executeScript('arguments[0].click()', element)
}
throw(e)
}
Edit: Voir aussi .
Solution:
// Find an element and define it
WebElement elementToClick = driver.findElement(By.xpath("some xpath"));
// Scroll the browser to the element's Y position
((JavascriptExecutor) driver).executeScript("window.scrollTo(0,"+elementToClick.getLocation().y+")");
// Click the element
elementToClick.click();