【发布时间】:2021-08-16 12:05:55
【问题描述】:
我在下面有 2 个列表:
// 从下面的列表中我想检索它 每个计划的文本,例如:foreach(var plan in AvailablePlanNames) and then use plan.Text property.
private IList<IWebElement> AvailablePlanNames =>
_webDriver.FindElementsWithWait(By.XPath("//div[@class='asc-checkbox-group']"));
// 从下面的列表中,我将提取 2 个属性,例如:
foreach(var planDetail in PlanDetails), fetch:
planDetail.GetAttribute("id") and planDetail.GetAttribute("checked")
private IList<IWebElement> PlansDetails => _webDriver.FindElementsWithWait(By.XPath("//div[@class='asc-checkbox-group']/input"));
所以第一个列表有:["Plan A", "Plan B", "Plan C"]
第二个列表可以是:[[Plan A ID , true], [Plan B ID, false], [Plan C ID, null]]
我正在尝试制作一个类似 Tuple 的列表,其中包含:
Tuple((Plan A, Plan A ID, true), (Plan B, Plan B ID, false), (Plan C, Plan C ID, null))
我搜索了几篇帖子并尝试了多种解决方案,但都没有奏效。
public IList<string> GetAvailablePlans()
{
var list = new List<(string Text, string, string)>();
foreach (var planName in AvailablePlanNames)
{
foreach (var planDetail in PlansDetails)
{
list.Add((planName.Text,
planDetail.GetAttribute("id"),
planDetail.GetAttribute("checked")));
}
}
return (IList<string>)list;
}
【问题讨论】:
-
如果
PlansDetails[i]对应于指定planName[i]的i,那么你只需要一个for循环。
标签: c# .net selenium-webdriver c#-8.0 c#-7.0