Веб-автоматизация Watin Проблема - PullRequest
2 голосов
/ 28 февраля 2011

Я использую 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, верно?

Даже когда я проверяю, существуют ли они, оно возвращается отрицательным.Любая помощь?

1 Ответ

3 голосов
/ 28 февраля 2011

Элементы управления входом находятся внутри элемента iframe с id = loginframe. Измените свой код в ветке 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();
...