2011-02-28 67 views
2

我正在使用watin登录AOL Lifestream并获取关于当前生命周期的所有评论。网络自动化Watin问题

我正在使用Watin和IE登录。问题是它似乎没有找到登录页面上的表单元素,即使它们在那里。

这里是我的代码,以查找和形式元素填充:

// Sign in 
     IE ie = new IE("http://lifestream.aol.com/"); 
     ie.WaitForComplete(); 

     // Log the user in or out 
     if (ie.Element(Find.ById("account_dd")).Exists) 
     { 
      ie.GoTo("http://lifestream.aol.com/logout"); 
     } 
     else 
     { 
      ie.Link(Find.ById("signInLink")).Click(); 
      ie.TextField(Find.ById("lgnId1")).Value = txtUsername.Text; 
      ie.TextField(Find.ById("pwdId1")).Value = txtPassword.Text; 
      ie.Button(Find.ById("submitID")).Click(); 
     } 

的表单元素在那里,因为我可以使用Firebug查看它们。它们似乎是用Javascript生成的,但它们应该仍然在DOM中吗?

即使当我检查它们是否存在时,它会返回负值。任何帮助?

回答

3

登录控件位于id = loginframe的iframe元素中。在else分支中更改代码,如下所示:

var frame = ie.Frame("loginframe"); 

frame.TextField(Find.ById("lgnId1")).Value = txtUsername.Text; 
frame.TextField(Find.ById("pwdId1")).Value = txtPassword.Text; 
frame.Button(Find.ById("submitID")).Click();