如何使用Watin(c#)获取元素列表并更改值?

时间:2016-11-16 17:39:46

标签: c# asp.net watin

我希望使用watin获取网页中的元素列表并更改所有值

例如,我想找到所有带有“test”ID的文本框 并改变他们的价值

这是我的代码。但它只改变一个元素,而不是全部(在我的代码中,我通过他的名字寻找元素)

  IE ie = new IE("http://sample.net/");
  ie.TableRow(Find.ByText(t => t.Contains("sample text"))).TextField(Find.ByName("second text")).TypeText("write this string");
  ie.WaitForComplete();

在这段代码中我在表中找到一个文本,然后我找到文本框(第二个文本),然后写下“写这个字符串” 但我想为所有相似的元素做这件事 我试过foreach但失败了 谁知道正确的代码?

1 个答案:

答案 0 :(得分:0)

我可以看到您已定位到TableRow并使用TextField,这只是一个文本文件。您应该定位父级并尝试使用您的条件获取所有文本字段。

我尝试使用以下代码并为我工作。如果您仍然无法找出问题,请发布错误/ html源代码。

 IE ie = new IE("https://accounts.google.com/SignUp?service=mail&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ltmpl=default");
 ie.WaitForComplete();

 foreach (var txtEle in ie.Form(Find.ById("createaccount")).TextFields)
 {
      if (!string.IsNullOrEmpty(txtEle.Id))
      {
          if (txtEle.Id.Contains("Name"))
          {
             txtEle.TypeText("write this string");
          }
      }
  }

 ie.WaitForComplete();