C# - 访问变量动态命名

时间:2012-12-04 14:50:11

标签: c# .net user-interface automation

我正在自动化网页。我已将链接捕获并保存在文件中。

Link Url_0="gmail.com"
Link Url_1="ymail.com"
Link Url_2="hotmail.com"
Link Url_3="outlook.com"

以下声明将点击每个网址。

HomePage.Url_0.Click();//Homepage is the Class name

我想逐个点击这些网址。所以我正在使用for循环。

for(int i=0;i<3;i++)
{
String url=String.Format("Url_{0}",i);
HomePage.url.Click(); //This is throwing me error (I think that this is not correct way to do.)
Sleep(2000);
}

我该怎么办?这可以以任何方式完成吗?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

您应该将变量放入集合中,而不是让每个变量具有不同的名称。从技术上讲,可以在你描述的庄园中访问变量,但这不是像C#这样的语言设计的,而且非常不好的做法。

有几个系列可供选择。这里List可能是合适的,数组也可以正常工作。

List<string> urls = new List<string>()
{
    "gmail.com",
    "ymail.com",
    "hotmail.com",
    "outlook.com"
};

foreach (string url in urls)
{
    //do whatever with the url
    Console.WriteLine(url);
}

答案 1 :(得分:0)

您可以将所需的所有链接存储到类型集合中:IList<Link>IEnumerable<Link>

IList<Link> myCollection = new List<Link>();

之后,您将使用

浏览集合中的项目
foreach(var item in myCollection ) {
      //Here implement your logic with click
}