我正在尝试制作一个同时返回两个元素的方法。这是我的代码:
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"));
但我不知道怎么做对...你能帮助我吗? 提前谢谢!!!
答案 0 :(得分:1)
我不确定以下语法是否正确。
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, IEnumberable<IWebElement> elementEnumerable)
{
if (elementEnumerable != null && elementEnumerable.Any())
{
elementList.AddRange(elementEnumerable);
}
}
请注意,我假设FindElements的输出是IEnumerable。但如果是其他类型的收藏品,这个想法仍然保持不变。
如果您必须知道哪个元素属于哪个ID,则可以创建
而不是创建列表Dictionary<string, IWebElement>
其中string将是你的idKey。