C# Web自动化中的Watin问题
我正在使用watin登录AOL Lifestream,获取关于我当前Lifestream的所有评论 我正在使用Watin和IE登录。问题是,即使表单元素在登录页面上,它似乎也找不到它们 以下是查找和填写表单元素的代码:C# Web自动化中的Watin问题,c#,automation,watin,C#,Automation,Watin,我正在使用watin登录AOL Lifestream,获取关于我当前Lifestream的所有评论 我正在使用Watin和IE登录。问题是,即使表单元素在登录页面上,它似乎也找不到它们 以下是查找和填写表单元素的代码: // Sign in IE ie = new IE("http://lifestream.aol.com/"); ie.WaitForComplete(); // Log the user in or out if
// 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中,对吗
即使我检查它们是否存在,结果也是否定的。有任何帮助吗?登录控件位于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();