我正在使用watin登录AOL Lifestream,并获得关于我当前生活流的所有评论。
我正在使用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中,对吗?
即使我检查它们是否存在,结果也是否定的。有什么帮助吗?
发布于 2011-02-28 22:21:03
登录控件位于带有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();https://stackoverflow.com/questions/5141870
复制相似问题