예제 #1
0
        public void runJS(String cScript)
        {
            if (vGecko != null)
            {
                JQueryExecutor js = new Gecko.JQuery.JQueryExecutor(vGecko.DefaultView);
                js.ExecuteJQuery(cScript);
            }

            if (vHtml != null)
            {
                vHtml.InvokeScript(cScript);
            }
        }
예제 #2
0
        private void frmWeb_Load(object sender, EventArgs e)
        {
            geckoWebBrowser1.Dock = DockStyle.Fill;

            geckoWebBrowser1.AddMessageEventListener("OpenWinUrl", OpenWinUrl);

            String cWeb    = Config.GetAppSettings("WEB_URL");
            String cUrl    = cWeb + "Admin/login.aspx";
            String cORG_ID = INIConfig.ReadString("Config", "ORG_ID");

            if (cUrl.IndexOf("?") > -1)
            {
                cUrl = cUrl + "&ORG_ID=" + cORG_ID;
            }
            else
            {
                cUrl = cUrl + "?ORG_ID=" + cORG_ID;
            }
            this.geckoWebBrowser1.Navigate(cUrl);

            JQueryExecutor ctx = new Gecko.JQuery.JQueryExecutor(geckoWebBrowser1.Window);  //先获取到jquery对象
        }
예제 #3
0
        public String getJSValue(String cScript)
        {
            if (vGecko != null)
            {
                JQueryExecutor js    = new Gecko.JQuery.JQueryExecutor(vGecko.DefaultView);
                JsVal          jsRet = js.ExecuteJQuery(cScript);
                if (!jsRet.IsNull)
                {
                    return(StringEx.getString(jsRet));
                }
            }

            if (vGecko != null)
            {
                Object objRet = vHtml.InvokeScript(cScript);
                if (objRet != null)
                {
                    return(StringEx.getString(objRet));
                }
            }

            return(null);
        }
예제 #4
0
        public static JsVal ExecuteJQuery(IGeckoWebBrowser browser, string jQuery)
        {
            var jquery = new JQueryExecutor(browser.Window);

            return(jquery.ExecuteJQuery(jQuery));
        }
예제 #5
0
        public static IEnumerable <GeckoElement> GetElementsByJQuery(IGeckoWebBrowser browser, string jQuery)
        {
            var jquery = new JQueryExecutor(browser.Window);

            return(jquery.GetElementsByJQuery(jQuery));
        }
        public static GeckoElement GetElementByJQuery(this IGeckoWebBrowser browser, string jQuery)
        {
            var jquery = new JQueryExecutor(browser.Window);

            return(jquery.GetElementByJQuery(jQuery));
        }
예제 #7
0
        /// <summary>
        /// Displays the Backtest results packet
        /// </summary>
        /// <param name="packet">Backtest results</param>
        public void DisplayBacktestResultsPacket(BacktestResultPacket packet)
        {
            if (packet.Progress != 1) return;

            //Remove previous event handler:
            var url = GetUrl(_job, _liveMode, true);

            //Generate JSON:
            var jObj = new JObject();
            var dateFormat = "yyyy-MM-dd HH:mm:ss";
            dynamic final = jObj;
            final.dtPeriodStart = packet.PeriodStart.ToString(dateFormat);
            final.dtPeriodFinished = packet.PeriodFinish.AddDays(1).ToString(dateFormat);
            dynamic resultData = new JObject();
            resultData.version = "3";
            resultData.results = JObject.FromObject(packet.Results);
            resultData.statistics = JObject.FromObject(packet.Results.Statistics);
            resultData.iTradeableDates = 1;
            resultData.ranking = null;
            final.oResultData = resultData;
            var json = JsonConvert.SerializeObject(final);

            //GECKO RESULT SET:
#if !__MonoCS__
            _geckoBrowser.DOMContentLoaded += (sender, args) =>
            {
                var executor = new JQueryExecutor(_geckoBrowser.Window);
                executor.ExecuteJQuery("window.jnBacktest = JSON.parse('" + json + "');");
                executor.ExecuteJQuery("$.holdReady(false)");
            };
            _geckoBrowser.Navigate(url);
#else
            //MONO WEB BROWSER RESULT SET:
            _monoBrowser.DocumentCompleted += (sender, args) =>
            {
                if (_monoBrowser.Document == null) return;
                _monoBrowser.Document.InvokeScript("eval", new object[] { "window.jnBacktest = JSON.parse('" + json + "');" });
                _monoBrowser.Document.InvokeScript("eval", new object[] { "$.holdReady(false)" });
            };
            _monoBrowser.Navigate(url);
#endif

            foreach (var pair in packet.Results.Statistics)
            {
                _logging.Trace("STATISTICS:: " + pair.Key + " " + pair.Value);
            }
        }
예제 #8
0
 public void filldropdown(string id, string value)
 {
     GeckoWebBrowser wb = (GeckoWebBrowser)GetCurrentWB();
     if (wb != null)
     {
         if (id.StartsWith("/"))
         {
             string xpath = id;
             GeckoHtmlElement elm = GetElementByXpath(wb.Document, xpath);
             elm.SetAttribute("selectedIndex", value);
             
             elm.Focus();
         }
         else
         {
             using (AutoJSContext context = new AutoJSContext(wb.Window.JSContext))
             {
                 string javascript = string.Empty;
                 context.EvaluateScript("document.getElementById('" + id + "').selectedIndex = " + value + ";");
                 JQueryExecutor jquery = new JQueryExecutor(wb.Window);
                 jquery.ExecuteJQuery("$('#" + id + "').trigger('change');");
                 context.EvaluateScript("document.getElementById('" + id + "').scrollIntoView();");
             }
         }
     }
 }