J'essaie de cliquer sur la portée avec le concept de text-clone. Voici le code HTML
WebElement foo = driver.findElement(By.xpath("//span[text()='Clone concept']")); Actions bar = new Actions(driver); bar.click(foo).perform();
4 Réponses :
Malheureusement, webDiver ne semble pas être excellent pour la manipulation de situations comme celle décrite dans vos questions. Vous avez cependant quelques options. MOCK A Cliquez sur JavaScript:
((JavascriptExecutor) driver).executeScript("arguments[0].click();", elementToClick);
A pris un certain temps pour le voir, mais ellementtoclick code> est l'élément webDriver que vous avez trouvé avec
pilote.findElement () code>.
Le problème est dans votre xPath. SELENIUM WEBDRIVER Constriction d'un élément en double par votre écran XPath à l'écran qui est caché et tring pour effectuer une opération dessus. S'il vous plaît changer le xpath et ça fonctionnera. J'ai fait la même chose dans mon code .. p>
C'est exactement le problème que j'avais aussi. var n = _currentbrowserdriver.findelements (nommé (Nomname)). Cou NT; Si (N> 1) jeter une nouvelle exception ("élément n'est pas unique");
Pour la requête ci-dessus, voici le XPath:
//ui[@class='context-menu-list context-menu-root']/span[contains(text(),'Clone concept')]
Toutes mes excuses, le vote en direct a été accidentel sur ce que je viens de remarquer, je ne peux pas supprimer que si la réponse n'est éditée
Fondamentalement, il y a quatre raisons pour lesquelles un élément n'est pas interactable. Aucune quatre n'est généralement la solution.
1) Timing - le temps qu'il faut pour des éléments à charger. Pour cela, vous devez vérifier comment utiliser implicite une attente explicite p>
2) Vérifiez si l'élément est dans un cadre p>
3) localisateur incorrect p>
4 ) Mauvaise mise en œuvre de la réactivité. Cela découle toujours du n ° 3). Certains sites Web n'ont qu'un seul code activé pour les versions mobiles et Web. Ainsi, l'élément aura plus d'une instance lorsque vous vérifiez le XXXXX.SIZE. Vous devrez effectuer une recherche via la liste pour celle dont l'affichage! = Aucun. Ensuite, vous pouvez ajouter la position de l'élément à votre XPath ou quel que soit le localisateur que vous utilisez. Par exemple. Utilisez ce code pour Java, XXXX / YYYYY / ZZZZ [3] CODE> Si la position est de 4 dans la liste. P>
Hypothèses
a) le type de localisation est ID
b) Nom de la liste est NameofYourelements P> List<WebElement> nameOfYourElements = wd.findElements(By.id("nameOfYourID"));
System.out.println(nameOfYourElements.size());
Ceci est une question commune. Stackoverflow.com/ Questions / 6101461 / ...