WebElement getText () ist eine leere Zeichenfolge in Firefox, wenn das Element auf dem Bildschirm nicht physisch sichtbar ist

Meine Selenium Webdriver-Tests sind kürzlich nach dem Upgrade von Firefox auf Version 19 abgebrochen. In einigen meiner Tests muss ich Elemente abrufen, die auf der Seite, aber im Browserfenster nicht sichtbar sind, d. H. Ich müsste nach rechts scrollen, um sie anzuzeigen. Seit dem Upgrade auf Firefox 19 (ich habe ein Upgrade von 15 durchgeführt, sodass dies ein Problem seit 16 sein kann) kann ich nur Text für Elemente abrufen, die im Browserfenster angezeigt werden. Meine xpaths rufen alle Elemente korrekt ab, zum Beispiel in meinem folgenden Code:

    private void buildColumnsMap(){
    allColumnHeaders = new HashMap<String,Integer>();
    positionToColumnName = new ArrayList<String>();

    WebElement columnsRoot = driver.findElement(By.xpath(COLUMNS_ROOT_XPATH));
    List <WebElement> columns = columnsRoot.findElements(By.xpath("./td/div/span"));
    System.out.println("Number of columns found: " + columns.size());

    for(int i = 0; i < columns.size(); ++i){
        String columnName = columns.get(i).getText();
        System.out.println("Column been inserted: " + columnName);
        allColumnHeaders.put(columnName, i);
        positionToColumnName.add(columnName);
    }
}

Die Liste "Spalten" hat eine Größe von 38, aber in meinem Browserfenster kann ich nur 10 Spalten sehen, ohne scrollen zu müssen. Wenn ich also die Spaltennamen in meine Objekte einfüge, erhalte ich 10 Spaltennamen und dann alle Leerzeichen.

Number of columns found: 38
Column been inserted: Date/Time
Column been inserted: Endpoint1
Column been inserted: Endpoint2
Column been inserted: Duration
Column been inserted: Codec1
Column been inserted: Codec2
Column been inserted: Avg MOS1
Column been inserted: Avg MOS2
Column been inserted: Avg Latency1 (ms)
Column been inserted: Avg Latency2 (ms)
Column been inserted: Avg Jitter1 (ms)
Column been inserted: 
Column been inserted: 
...
...

Das hat bei mir in Firefox 15 einwandfrei funktioniert, ist aber jetzt kaputt. Hat jemand etwas ähnliches gefunden und eine Arbeit gefunden? Oder gibt es eine Möglichkeit, "zu einem Element zu scrollen", um das Scrollen zu erzwingen und es somit auf dem Bildschirm sichtbar zu machen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage