Est par.id de mieux que de par.tagname?

Je travaillais sur la lecture des mails de gmail à l'aide de webdriver et entre les deux, je suis tombé sur cette différence entre Par.id et Par.tagname.

Je suis en train d'essayer d'obtenir l'accès à une "table" dont l'id est: "pg". J'ai donc pu

  1. Soit utiliser Par.id":pg")
  2. OU de l'utilisation Par.tagname("table") et de rechercher un élément avec l'id :pg

Voici le code pour les deux cas.

Par.id:

WebDriver webDriver = new FirefoxDriver();
webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
webDriver = webDriver.switchTo().frame("canvas_frame");
WebElement table1 = webDriver.findElement(By.id(":pg"));`

Code ci-dessus, j'ai directement pour obtenir l'élément qui a l'id ":pg"

Par.tag:

WebDriver webDriver = new FirefoxDriver();
webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
List<WebElement> tables = webDriver.findElements(By.tagName("table"));
for(WebElement table2: tables){
    String id = table2.getAttribute("id");
    System.out.println("id: "+ id);
    if(id != null && id.equals(":pg")){
        System.out.println("FOUND IT!!!");
    }
}

Code ci-dessus, je trouve tous les éléments avec le tag de la table, puis de voir celui qui a l'id ":pg".

Ces deux extraits de code sont essentiellement de faire la même chose mais à l'aide de différents moyens(Par.id ou Par.tagname). Toutefois, le premier extrait de code qui utilise Par.id réussit toujours, tandis que la deuxième extrait de code qui utilise Par.tagname échoue presque toujours. (Il va travailler avec d'autres en attente cependant)

Pourquoi cette différence est-elle entre Par.id et Par.tagname?

Grâce,
Chris.

InformationsquelleAutor ChrisOdney | 2011-06-16