Exemplo n.º 1
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     if (NMHook.connected)
     {
         NMHook.enumwindowandtabs();
         if (NMHook.chromeconnected)
         {
             var tab = NMHook.CurrentChromeTab;
             if (tab != null)
             {
                 ModelItem.Properties["Browser"].SetValue(new InArgument <string>("chrome"));
                 ModelItem.Properties["Url"].SetValue(new InArgument <string>(tab.url));
             }
         }
         if (NMHook.ffconnected)
         {
             var tab = NMHook.CurrentFFTab;
             if (tab != null)
             {
                 ModelItem.Properties["Browser"].SetValue(new InArgument <string>("ff"));
                 ModelItem.Properties["Url"].SetValue(new InArgument <string>(tab.url));
             }
         }
         if (NMHook.edgeconnected)
         {
             var tab = NMHook.CurrentEdgeTab;
             if (tab != null)
             {
                 ModelItem.Properties["Browser"].SetValue(new InArgument <string>("edge"));
                 ModelItem.Properties["Url"].SetValue(new InArgument <string>(tab.url));
             }
         }
     }
 }
Exemplo n.º 2
0
        void IRecordPlugin.StatusTextMouseUp()
        {
            var design = Plugin.client.CurrentDesigner;

            if (design == null)
            {
                return;
            }
            if (NMHook.connected)
            {
                NMHook.enumwindowandtabs();
                if (NMHook.chromeconnected)
                {
                    var tab = NMHook.CurrentChromeTab;
                    if (tab != null)
                    {
                        design.AddRecordingActivity(new OpenURL {
                            DisplayName = "Open URL", Url = tab.url, Browser = "chrome"
                        }, this);
                    }
                }
                if (NMHook.ffconnected)
                {
                    var tab = NMHook.CurrentFFTab;
                    if (tab != null)
                    {
                        design.AddRecordingActivity(new OpenURL {
                            DisplayName = "Open URL", Url = tab.url, Browser = "ff"
                        }, this);
                    }
                }
                if (NMHook.edgeconnected)
                {
                    var tab = NMHook.CurrentEdgeTab;
                    if (tab != null)
                    {
                        design.AddRecordingActivity(new OpenURL {
                            DisplayName = "Open URL", Url = tab.url, Browser = "edge"
                        }, this);
                    }
                }
            }
        }
Exemplo n.º 3
0
        public static treeelement[] _GetRootElements(Selector anchor)
        {
            var rootelements = new List <treeelement>();
            var browser      = "";

            if (NMHook.chromeconnected)
            {
                browser = "chrome";
            }
            if (NMHook.ffconnected)
            {
                browser = "ff";
            }
            if (NMHook.edgeconnected)
            {
                browser = "edge";
            }
            if (string.IsNullOrEmpty(browser))
            {
                return(rootelements.ToArray());
            }
            //NMHook.enumtabs();
            //// var tab = NMHook.tabs.Where(x => x.highlighted == true && x.browser == "chrome").FirstOrDefault();
            //var tab = NMHook.tabs.Where(x => x.highlighted == true).FirstOrDefault();
            //if (tab == null)
            //{
            //    // tab = NMHook.tabs.Where(x => x.browser == "chrome").FirstOrDefault();
            //    tab = NMHook.tabs.FirstOrDefault();
            //}
            //if (NMHook.tabs.Count == 0) { return rootelements.ToArray(); }
            //// getelement.data = "getdom";
            var getelement = new NativeMessagingMessage("getelements", PluginConfig.debug_console_output, PluginConfig.unique_xpath_ids)
            {
                browser = browser,
                xPath   = "/html",
                frameId = -1
            };
            var tab = NMHook.tabs.Where(x => x.browser == browser && (x.active || x.selected)).FirstOrDefault();

            if (tab == null)
            {
                NMHook.enumwindowandtabs();
            }
            if (tab != null)
            {
                getelement.tabid    = tab.id;
                getelement.windowId = tab.windowId;
            }

            if (anchor != null && anchor.Count > 1)
            {
                var s = anchor[1];
                var p = s.Properties.Where(x => x.Name == "xpath").FirstOrDefault();
                if (p != null)
                {
                    getelement.xPath = p.Value;
                }
            }

            NativeMessagingMessage result = null;

            try
            {
                result = NMHook.sendMessageResult(getelement, true, PluginConfig.protocol_timeout);
            }
            catch (Exception)
            {
            }
            if (result != null && result.result != null && result.results == null)
            {
                // result.results = new NativeMessagingMessage[] { result };
                var html = new NMElement(result);
                rootelements.Add(new NMTreeElement(null, true, html));
                return(rootelements.ToArray());
            }
            if (result != null && result.results != null && result.results.Count() > 0)
            {
                foreach (var res in result.results)
                {
                    if (res.result != null)
                    {
                        if (res.tab == null)
                        {
                            res.tab = NMHook.tabs.Where(x => x.browser == res.browser && x.id == res.tabid).FirstOrDefault();
                        }
                        var html = new NMElement(res);
                        rootelements.Add(new NMTreeElement(null, true, html));
                        //var html = new HtmlElement(getelement.xPath, getelement.cssPath, res.tabid, res.frameId, res.result);
                    }
                }
                //result = result.results[0];
            }
            return(rootelements.ToArray());
        }