Можно ли заставить DomContainer возвращать Iframe, когда элемент находится в IFrame? - PullRequest
0 голосов
/ 09 марта 2012

Я использую Watin и хочу запустить какой-нибудь пользовательский javascript.Я не могу использовать Browser.Eval, потому что иногда я захочу выполнить код внутри IFrame.Я попытался использовать свойство DomContainer для этого, но DomContainer возвращает полный DOM, а не DOM IFrame.Пример ниже:

   Element.DomContainer.Eval(jScript)

Есть ли способ сделать это с помощью объекта Element?

Я хочу избежать использования двух конструкторов.(См. Ниже):

 public class TelerikWatinTextBox: ITextBox
{
    public TelerikWatinTextBox(Frame frame, string clientId)
    {
        Frame = frame;
        ClientId = clientId;
    }

    public TelerikWatinTextBox(Browser browser, string clientId)
    {
        Browser = browser;
        ClientId = clientId;
    }

    public string ClientId { get; set; }
    public Browser Browser { get; set; }
    public Frame Frame { get; set; }
    #region ITextBox Members

    public string Value
    {
        get
        {
            string value = "";
            string jScript = string.Format(@"$find(""{0}"").get_value();", ClientId);
            if (Browser != null)
            {
                value = Browser.Eval(jScript);
            }
            else if (Frame != null)
            {
                value = Frame.Eval(jScript);
            }

            return value;
        }
        set
        {
            string jScript = string.Format(@"$find(""{0}"").set_value(""{1}"");", ClientId, value);
            if (Browser != null)
            {
                Browser.Eval(jScript);
            }
            else if (Frame != null)
            {
                Frame.Eval(jScript);
            }
        }
    }

    #endregion
}


public interface ITextBox
{
    string Value { get; set; }
}

NB ClientId является ссылкой на DIV.

1 Ответ

0 голосов
/ 09 марта 2012

Попробуйте это (не проверено):

Frame iFrame = browser.Frame(Find.ByClass("ClassName"));
iFrame.Eval("script")
...