2013-01-07 1 views
-2

J'ai besoin de conduire un site web rendu presque entièrement avec javascript. J'ai été capable de détecter la page restituée et de la parcourir jusqu'ici, mais il y a des variables dans le script que je voudrais traiter pour certaines décisions de navigation. Je peux identifier les tags en utilisant xpath mais je ne peux pas obtenir le texte entre eux. Pour être clair, je ne souhaite pas exécuter javascript, il suffit de lire les variables dans le javascript de la page. J'ai de la difficulté à trouver de la documentation qui énonce ce dont j'ai besoin. Dans un thread, quelqu'un a mentionné l'utilisation d'un objet document, mais je ne suis pas sûr de savoir comment y arriver par programmation.Besoin d'aide pour le traitement (pas l'exécution) javascript trouvé sur la page

J'apprécierais vraiment un indice ici. Merci beaucoup d'avance pour votre aide.

Répondre

0

Je l'ai compris. WebDriver.getPageSource(). Comme il n'y avait pas d'analyseurs javascript, j'ai localisé les bits que je voulais avec une expression régulière puis convertis le JSON en un objet avec simple json.

private String getRandomProvider(){ 
    String shortName = ""; 
    JSONArray providers; 
    String page = this.getPageSource(); 
    Pattern pattern = Pattern.compile("domainBootstrap\\.providers = (\\[,?\\{.*\\}\\]);"); 
    Matcher matcher = pattern.matcher(page); 
    if (matcher.find()){ 
     try { 
      providers = (JSONArray) new JSONParser().parse(matcher.group(1)); 
      int randomProvider = (int)(Math.random() * providers.size()); 
      JSONObject provider = (JSONObject) providers.get(randomProvider); 
      shortName = provider.get("shortName").toString(); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
    return shortName; 
Questions connexes