2011-10-10 2 views
7

J'utilise la dernière version de Selenium et le chromedriver pour tester une application ZK.Comment obtenir le DOM actuel avec Selenium Java 2.8?

Pendant le test, je voudrais jeter le DOM (ou une partie de celui-ci) pour m'aider à trouver les éléments dont j'ai besoin (et probablement aider les gens qui doivent maintenir le test).

La méthode WebDriver.getPageSource() semblait prometteuse, mais elle ne renvoie que le code HTML tel qu'il a été envoyé par le serveur, et non le résultat après avoir exécuté tout le code JavaScript.

Le code JavaScript est exécuté; Je peux trouver des éléments par ID que je ne peux pas voir dans la sortie de getPageSource(). J'ai donc essayé WebElement.getText() mais ce n'est que le texte des éléments, pas les éléments eux-mêmes ou leurs attributs.

Est-il possible d'obtenir le DOM ou dois-je faire une chirurgie en trou de serrure ici?

Répondre

1

J'ai la même question vraiment, mais la seule façon que j'ai trouvé de le faire est ExecuteScript:

/// <summary> 
     /// Gets the parentElement/Node of a particular element 
     /// </summary> 
     /// <param name="driver"></param> 
     /// <param name="element"></param> 
     /// <returns></returns> 
     public static IWebElement GetElementParent(IWebDriver driver,IWebElement element) 
     { 
      return (IWebElement) ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].parentNode", element); 
     } 

pourquoi ne marche pas par le soutien By.DOM avec une fonction que je ne sais pas vraiment .. Ok, puisque la page contient jQuery, je pourrais obtenir ce que je veux en exécutant `$ (arguments [0]). Html()`, je suppose que c'est dû à la nécessité d'un webdriver pour plusieurs navigateurs etc

+0

: - / –

Questions connexes