返回多个元素的断言者

Asserter returning more than one element

我正在尝试制作一种方法,同时 returns 两个元素。这是我的代码:

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

但我不知道如何正确...你能帮帮我吗? 提前致谢!!!

我不确定下面的语法是否正确。

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

相反,您可以尝试做的是跟随。

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, IEnumerable<IWebElement> elementEnumerable)
{
    if (elementEnumerable != null && elementEnumerable.Any())
    {
        elementList.AddRange(elementEnumerable);
    }
}

请注意,我假设 FindElements 的输出是 IEnumerable。但如果是其他类型的collection,思路还是一样

如果您必须知道哪个元素属于哪个 ID,您可以创建一个

而不是创建列表
Dictionary<string, IWebElement>

其中字符串是您的 idKey