Durch ist.id besser, als bei der.tagname?

War ich arbeiten Lesen von E-mails aus gmail mittels webdriver und in zwischen traf ich diese Differenz zwischen Durch.id.tagname.

Ich versuche für den Zugriff auf einen "table" mit der id ":pg". So konnte ich

  1. Verwenden Sie entweder Durch.id ("pg")
  2. ODER verwenden.tagname("Tabelle") und die Suche nach einem element mit id :pg

Hier ist der code für beide Fälle.

Durch.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"));`

Obigen code habe ich direkt bekommen das element die id ":pg"

Durch.tagname:

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!!!");
    }
}

Obigen code, ich finde alle Elemente mit der tagname von dem Tisch und dann sehen, welche hat die id ":pg".

Diese beiden code-snippets sind im wesentlichen das gleiche tun, aber mit verschiedenen Möglichkeiten(Durch.id oder Durch.tagname). Jedoch, das erste code-snippet verwendet.id immer gelingt, während der zweite code-snippet verwendet.tagname scheitert fast immer. (Es wird zusätzliche Wartezeit allerdings)

Warum ist diese Differenz zwischen Durch.id.tagname?

Dank,
Chris.

InformationsquelleAutor ChrisOdney | 2011-06-16

Schreibe einen Kommentar