2016-11-16 179 views
0

我想用华廷获得元素列表中的网页和更改所有的值如何使用Watin(c#)获取元素列表并更改值?

例如我想找到“测试” 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但失败 任何人都知道正确的代码?

回答

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();