我有一个方法,我希望能够返回一个IWebElements列表、一个元素名称列表或一个字符串数组。是否可以使用一种方法返回多个数据类型?是否有一种更可行的方法来获得不同的返回类型而不使用一种方法?
/// <summary>
/// Gets all options belonging to this selected tag
/// </summary>
/// <returns>Returns a list of IWebElements</returns>
public List<IWebElement> SelectAllOptions(IWebDriver driver, ref DataObject masterData)
{
//Get the ID of the dropdown menu
DatabaseRetrieval.GetObjectRepository(ref masterData);
var strDropMenuId = masterData.DictObjectRepository["ID"];
//Find the dropdown menu and pull all options into a list
try
{
var dropMenu = new SelectElement(driver.FindElement(By.Id(strDropMenuId)));
return dropMenu.Options as List<IWebElement>;
}
catch (NoSuchElementException exception)
{
masterData.Logger.Log(Loglevel.Error, "Boom: {0}", exception.Message);
}
masterData.Logger.Log(Loglevel.Debug, "No options found for DropDownMenu: {0}", strDropMenuId);
return null;
}发布于 2014-04-28 16:18:26
可以将返回类型更改为
Dictionary<IWebElement, string>一旦编译好了IWebElements的列表,就可以简单地将与IWebElement相关联的字符串添加到字典中返回--调用您的方法的人将同时拥有IWebElement和用于处理的字符串。
var options = dropMenu.Options as List<IWebElement>;
if (options != null)
{
var values = options.ToDictionary(option => option, option => option.Text);
return values;
}https://stackoverflow.com/questions/23346126
复制相似问题