C'est la situation:
Voici ma question, puis-je trouver un identifiant unique pour chacun des éléments trouvés? Mon objectif est d'obtenir le même élément de sélénium en utilisant un sélecteur XPath ou CSS. Il serait donc très droit de générer un sélecteur sans ambiguïté pour les éléments de JQuery. D'autres idées sont les bienvenues aussi. P>
J'ai besoin d'une approche automatique pour identifier des éléments de jQuery, qui peuvent être "convertis" sur des éléments / locateurs de sélénium. P>
/ e modifier p> < P> Pour le rendre plus clair: P>
Si j'ai sélectionné un élément de jQuery: p> maintenant, je veux quelque chose comme ceci: p> est-ce possible? p> p>
3 Réponses :
Pas sûr de votre problème exact, mais vous pouvez construire votre localisateur à l'aide de HTML ID, nom, attributs de classe, etc. p>
Je sais que. Mais existe-t-il une méthode automatique qui me donne toujours un localisateur valide pour trouver un élément que j'ai sélectionné dans jQuery?
Je ne suis pas au courant de JQuery et je suppose qu'il n'y a pas de telle méthode automatique de sélénium
J'ai besoin d'une approche automatique pour identifier des éléments dans JQuery, qui peuvent être "convertis" en éléments / localisateurs de sélénium.
J'ai trouvé la solution, qui est assez facile:
String jQuerySelector = "arguments[0]"; ((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").doSomethingInJquery();", webElement);
Pour utiliser une interface RenderedWebElement, quel paquet doit être importé en Java?
Cela aurait peut-être changé pour WebElement code>
Je reçois l'erreur suivante lors de l'utilisation de jQuery dans webDriver avec Java: org.openqa.selenium.webdriveexception: $ n'est pas défini (AVERTISSEMENT: le serveur n'a fourni aucune information sur StackTrace) Durée ou délai d'attente: 915 millisecondes ... Comment peut-on Je résous ceci?
Code précédent: JSE.Executscript ("$ (# gbqfq '). Cliquez sur ();"); Selon votre direction Code actuel est: JSE.Executscript ("JQuery ('# GBQFQ'). Cliquez sur ();"); Ai-je raison?
Désolé de dire, même problème: org.openqa.selenium.webdrivexception: jQuery n'est pas défini (AVERTISSEMENT: Le serveur n'a fourni aucune information sur StackTrace) Durée ou délai d'attente: 4,29 secondes. Y a-t-il une configuration pour JQuery?
Laissez-nous Continuez cette discussion en chat
Utiliser EVAL le rend encore plus facile. Utilisez un sélecteur d'index tel que [0] avec le code JQuery ou il retournera une collection d'éléments.
String elementLocator = "$('#btnID')[0]"; public RemoteWebElement getElementByJQueryLocator(String jQueryLocator){ JavascriptExecutor js = (JavascriptExecutor) driver; RemoteWebElement element = (RemoteWebElement) js.executeScript("return eval(arguments[0]);", jQueryLocator); return element; } RemoteWebElement webElement = getElementByJQueryLocator(elementLocator); webElement.click();
Parmi toutes les réponses ci-dessus, c'est le seul qui fonctionne. Merci mon pote!
C'est fondamentalement l'autre direction à cette question: Stackoverflow.com/q/5605456/675065