2017-04-09 3 views
0

Ich versuche, eine Methode zu erstellen, die zur gleichen Zeit zwei Elemente zurückgibt. Das ist mein Code:Asserter, der mehr als ein Element zurückgibt

this.Wait.Until(ExpectedConditions.ElementExists(By.Id("mm_date_8"))); 
this.Wait.Until(ExpectedConditions.ElementExists(By.Id("dd_date_8"))); 

return this.Driver.FindElements(By.Id("mm_date_8"), By.Id("dd_date_8")); 

Aber ich weiß nicht, wie man es richtig macht ... Können Sie mir bitte helfen. Vielen Dank im Voraus !!!

Antwort

1

Ich bin nicht sicher, ob die folgende Syntax korrekt ist.

return this.Driver.FindElements(By.Id("mm_date_8"), By.Id("dd_date_8")); 

statt dessen, was Sie versuchen können, folgt.

List<IWebElement> elements = new List<IWebElement>(); 
AddElementsToList(elements, this.Driver.FindElements(By.Id("mm_date_8")); 
AddElementsToList(elements, this.Driver.FindElements(By.Id("dd_date_8")); 
// now in your calling method you can easily index list. 
return elements; 

public void AddElementsToList(List<IWebElement> elementList, IEnumberable<IWebElement> elementEnumerable) 
{ 
    if (elementEnumerable != null && elementEnumerable.Any()) 
    { 
     elementList.AddRange(elementEnumerable); 
    } 
} 

Bitte beachten Sie, ich nehme an, die Ausgabe von FindElements ist IEnumerable. Aber wenn es eine andere Art von Sammlung ist, bleibt die Idee gleich.

Wenn Sie müssen wissen, was Element zu dem, was ID gehört, kann man statt dessen eine Liste erstellen, können ein erstellen

Dictionary<string, IWebElement> 

wo String Ihre idKey sein würde.

Verwandte Themen