2016-06-16 15 views
0

Ich frage mich, wie man eine leere List zurückgibt, wenn ich versuche, einige WebElement zu finden, aber nichts gefunden. Natürlich i Absturz vermeiden wollen, so ist es das, was ich versuche haben:Wie man eine leere Liste zurückgibt, wenn nichts gefunden

def getList(): List[WebElement] = { 

    try { 
     driver.fineElements(By.xpath("bla bla)) 
    }catch{ 
     case e: TimeoutException => // What should i put here ??? 
    } 
    } 
+0

http://stackoverflow.com/a/6557312/4985572 check it out, maby es hilft Ihnen – Igoranze

+0

Ich glaube nicht, dass dies eine Lösung für das, was ich fragte –

+0

Mögliche Duplikat von [Selenium WebDriver - Test, ob Element vorhanden ist ] (http://stackoverflow.com/questions/7991522/selenium-webdriver-test-if-element-is-present) –

Antwort

5

Edit:

Ich habe nicht bemerkt, Sie scala verwenden und nicht java, Entschuldigungen, aber es funktioniert die gleiche in Scala. Aus der Scala-Dokumentation:

Die findAll-Methode gibt eine unveränderliche IndexedSeq aller übereinstimmenden Elemente zurück. Wenn keine Elemente mit der Abfrage übereinstimmen, gibt findAll eine leere IndexedSeq zurück.

Es bereits gibt eine leere Liste, wenn keine Elemente gefunden werden, und wird nicht Ursache eine Ausnahme.

Die scala findAll-Methode wird das gleiche tun.

Wenn Sie nicht scalatest, sondern das Java-Selen-Paket verwenden, ist das immer noch der Fall. findElements gibt eine leere Liste zurück, wenn keine Elemente gefunden werden, und wird niemals eine TimeoutException auslösen.

+1

Das OP verwendet 'nicht findAll " –

+1

Es gibt kein Feinelement in Selen ... Von dem, was ich aus den Dokumenten entnehmen kann, kann scala entweder findElements oder findAll verwenden, sie sind gleich. In beiden Fällen gibt es eine leere Liste zurück und versucht, Ausnahme auszulösen ** nie ** funktioniert wie findElements oder findAll löst keine Ausnahme aus .. – Mobrockers

+1

OK, gotcha Da das OP angibt, dass 'getList' eine' List [WebElement] zurückgibt, können wir annehmen, dass er 'findElements' verwendet, nicht' findElement '. So wird es eine leere Liste zurückgeben, wie Sie sagen –

Verwandte Themen