Maison >Java >javaDidacticiel >Comment cliquer sur les éléments masqués par les superpositions dans Selenium ?
Cliquer sur les éléments masqués par les superpositions dans Selenium
Dans l'automatisation basée sur Selenium, cliquer sur des éléments masqués par les superpositions peut être un défi courant . Le message d'erreur « L'élément MyElement n'est pas cliquable au point (x, y)... Un autre élément recevrait le clic » indique cette situation.
Résoudre le problème
Pour résoudre ce problème, envisagez les approches suivantes :
WebElement element = driver.findElement(By.id("id1")); Actions actions = new Actions(driver); actions.moveToElement(element).click().build().perform();
JavascriptExecutor jse1 = (JavascriptExecutor)driver; jse1.executeScript("scroll(250, 0)"); // if the element is on top. jse1.executeScript("scroll(0, 250)"); // if the element is at bottom.
Actualisation de la page :
Si la page s'actualise avant que l'élément ne devienne cliquable, induisez une attente :
Thread.sleep(500); // replace 500 with an appropriate timeout in milliseconds
WebDriverWait wait2 = new WebDriverWait(driver, 10); wait2.until(ExpectedConditions.elementToBeClickable(By.id("id1")));
WebDriverWait wait3 = new WebDriverWait(driver, 10); wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
WebElement ele = driver.findElement(By.xpath("element_xpath")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", ele);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!