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)); } } } }
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); } } } }
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()); }