2013-06-05 3 views
0

Je suis un débutant ici d'apprentissage: P Probablement une question très basique, mais je ne sais pas comment demander ou rechercher. J'ai donc décidé de faire un crawler pour une page web en Java en utilisant le sélénium, et j'ai remarqué que si je ne terminais pas la session assez vite qu'elle gèle = (Cela signifie donc que je dois souvent appeler .quit() et Comme par exemple: Je souhaite ouvrir Google, tapez "tarte" et cliquez sur Rechercher, peut-être que je n'aime pas le résultat et souhaite que vous ouvriez un nouveau WebDriver? à la recherche de « tarte aux pommes » et continuer à le faire pendant une longue période de temps?Sélénium WebDriver Session

+0

vous pouvez le faire pendant une longue période de temps, mais vous devrez changer le lil bit de script manuellement pour y parvenir. – Smit

+0

C'était juste un exemple, je souhaite utiliser continuellement le pilote pour différentes tâches –

+0

De quel navigateur s'agit-il? Quelle version de ce navigateur? – Arran

Répondre

1

C'est moi ce que je l'avais fait pour ma pratique de temps de jeu. Vous pouvez l'utiliser.

String[] location = new String[] { 
            "Los Angeles", 
            "Santa Barbara", 
            "San Jose" 
           }; 

// Some code 

@Test 
public void testSelServerDiceTest() throws Exception { 
    for (int i = 0; i < location.length; i++) { // manually added for loop 
     selenium.open("/"); 
     selenium.type("id=FREE_TEXT", "selenium RC JUnit"); 
     selenium.type("id=WHERE", location[i].concat(" CA")); 
     selenium.click("xpath=//*[@id=\"searchSubmit\"]"); 
     selenium.waitForPageToLoad("30000"); 
     verifyTrue(selenium.isTextPresent("Search results:")); 
     verifyTrue(selenium.isTextPresent("Search job title only")); 
     verifyEquals("JUnit", selenium.getText("css=div.undoLabel")); 
     verifyTrue(selenium.isTextPresent("selenium")); 
     verifyTrue(selenium.isTextPresent("Search results: 1 - 1 of 1")); 
     assertTrue(selenium.isTextPresent("Search results:")); 
    } 
} 
//Some more code 

EDIT

// webdriver code snippet 

@Test 
public void testRemoteWebDriverDiceTest() throws Exception { 
    for (int i = 0; i < location.length; i++) { 
     driver.get(baseUrl + "/"); 
     driver.findElement(By.id("FREE_TEXT")).clear(); 
     driver.findElement(By.id("FREE_TEXT")) 
       .sendKeys("selenium RC JUnit"); 
     driver.findElement(By.id("WHERE")).clear(); 
     driver.findElement(By.id("WHERE")).sendKeys(
       location[i].concat(" CA")); 
     driver.findElement(By.xpath("//*[@id=\"searchSubmit\"]")).click(); 

     try { 
      assertEquals("JUnit", 
        driver.findElement(By.cssSelector("div.undoLabel")) 
          .getText()); 
     } catch (Error e) { 
      verificationErrors.append(e.toString()); 
     } 

    } 
} 
+0

Est-ce que cette ancienne version de Selenium? Je pensais qu'ils utilisent maintenant la classe WebDriver. Je souhaite savoir comment éviter la fuite de mémoire si je ne termine pas le conducteur? –

+0

Désolé de poster 'selenium' au lieu de' webdriver', de toute façon le concept de base reste le même. A propos de la fuite de mémoire, vous pouvez voir [ici] (http://selenium.10932.n7.nabble.com/WebDriver-and-IE9-memory-leak-td22307.html) – Smit

Questions connexes