コード例 #1
0
ファイル: Helpers.cs プロジェクト: schifflee/aframe
        private static IEnumerable <IWebElement> JQueryFindElementsStartingFromCurrentFrame(WebContext context, string jquerySelector)
        {
            if (jquerySelector.ToUpper().Contains("[IFRAME="))
            {
                var frames = Helpers.ExtractiFrameData(jquerySelector);
                foreach (var frame in frames)
                {
                    if (!string.IsNullOrEmpty(frame.jQuerySelector))
                    {
                        //Find the frame element.
                        var iFrameElement = Helpers.JQueryFindElementsStartingFromCurrentFrame(context, frame.jQuerySelector).FirstOrDefault();

                        if (iFrameElement == null)
                        {
                            throw new NotFoundException("iframe could not be found given the following jquery selector: " + frame.jQuerySelector);
                        }

                        //Switch to the new frame
                        context.Driver.SwitchTo().Frame(iFrameElement);
                        Debug.WriteLine("JQueryFind: SwitchToFrame: {0}", (object)frame.jQuerySelector);
                    }

                    //Because we are jumping frames we don't care about the jQuery in between them.. Only the last one.
                    jquerySelector = frame.jQuery;
                }
            }

            Debug.WriteLine("JQueryFind: $('{0}')", (object)jquerySelector);

            var elements = (IEnumerable <object>)context.ExecuteScript(@"return $(arguments[0]).get();", jquerySelector);

            return(elements.Cast <IWebElement>());
        }