【问题标题】:Web Automation Watin ProblemWeb 自动化 Watin 问题
【发布时间】:2011-02-28 22:21:02
【问题描述】:

我正在使用 watin 登录 AOL Lifestream 并获取我当前 Lifestream 上的所有 cmets。

我正在使用 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 中吧?

即使我检查它们是否存在,它也会返回负面。有什么帮助吗?

【问题讨论】:

    标签: c# automation watin


    【解决方案1】:

    登录控件位于 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();
    

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2011-03-05
      相关资源
      最近更新 更多