Пример #1
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView);

            this.Controls.Add((Control)browserView.GetComponent());

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document = e.Browser.GetDocument();

                    DOMElement      link3Element = document.GetElementById("link3");
                    DOMEventHandler link3Event   = delegate(object domEventSender, DOMEventArgs domEventArgs)
                    {
                        if (domEventArgs.Type == DOMEventType.OnFocus)
                        {
                            Console.Out.WriteLine("link3 gets focus");
                        }
                        if (domEventArgs.Type == DOMEventType.OnBlur)
                        {
                            Console.Out.WriteLine("Remove focus from link3");
                        }
                    };
                    link3Element.AddEventListener(DOMEventType.OnFocus | DOMEventType.OnBlur, link3Event, false);


                    DOMElement elementFocused = null;
                    foreach (DOMElement element in document.GetElementsByTagName("a"))
                    {
                        Thread.Sleep(2000);
                        element.Focus();
                        elementFocused = element;
                    }

                    if (elementFocused != null)
                    {
                        Thread.Sleep(2000);
                        elementFocused.Blur();
                    }
                }
            };
            browserView.Browser.LoadHTML(@"<html>
                                                <body>
                                                    <a id='link1' href='#'>The link 1</a>
                                                    <a id='link2' href='#'>The link 2</a>
                                                    <a id='link3' href='#'>The link 3</a>
                                                    <script type='text/javascript'>
                                                        var link2 = document.getElementById('link2');
                                                        link2.addEventListener('focus', function () { console.log('link2 gets focus'); });
                                                        link2.addEventListener('blur', function () { console.log('Remove focus from link2'); });
                                                    </script>
                                                </body>
                                            </html>");
        }
Пример #2
0
        private void on_expr_activate(object o, EventArgs args)
        {
            string      ex  = expr_entry.Text;
            DOMDocument doc = webview.DomDocument;

            Console.WriteLine(doc);
            DOMNodeList nodes = doc.GetElementsByTagName("a");

            ulong l = nodes.Length;

            for (ulong i = 0; i < l; i++)
            {
                DOMHTMLAnchorElement a = nodes.Item(i) as DOMHTMLAnchorElement;
                Console.WriteLine("Node {0}", a.Href);
            }
        }
Пример #3
0
 static void Main(string[] args)
 {
     using (Browser browser = BrowserFactory.Create())
     {
         ManualResetEvent waitEvent = new ManualResetEvent(false);
         browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
         {
             // Wait until main document of the web page is loaded completely.
             if (e.IsMainFrame)
             {
                 DOMDocument    document = e.Browser.GetDocument();
                 List <DOMNode> divs     = document.GetElementsByTagName("div");
                 foreach (DOMNode div in divs)
                 {
                     if (div.NodeType == DOMNodeType.ElementNode)
                     {
                         DOMElement divElement = (DOMElement)div;
                         Console.Out.WriteLine(@"class = {0}; offsetTop = {1}; offsetLeft = {2}; offsetWidth = {3}; offsetHeight = {4}
                                                 ; clientTop = {5}; clientLeft = {6}; clientWidth = {7}; clientHeight = {8}
                                                 ; scrollTop = {9}; scrollLeft = {10}; scrollWidth = {11}; scrollHeight = {12}"
                                               , divElement.GetAttribute("class")
                                               , divElement.OffsetTop
                                               , divElement.OffsetLeft
                                               , divElement.OffsetWidth
                                               , divElement.OffsetHeight
                                               , divElement.ClientTop
                                               , divElement.ClientLeft
                                               , divElement.ClientWidth
                                               , divElement.ClientHeight
                                               , divElement.ScrollTop
                                               , divElement.ScrollLeft
                                               , divElement.ScrollWidth
                                               , divElement.ScrollHeight
                                               );
                     }
                 }
                 waitEvent.Set();
             }
         };
         browser.LoadURL("http://www.google.com");
         waitEvent.WaitOne();
         Thread.Sleep(100000);
     }
 }
Пример #4
0
        void LoadClomplete()
        {
            var x          = 458;
            var y          = 203;
            var clickCount = 1;

            BrowserView.InputSimulator.SimulateMouseButtonEvent(MouseButtons.Left, System.Windows.Input.MouseButtonState.Pressed, clickCount, x, y);
            BrowserView.InputSimulator.SimulateMouseButtonEvent(MouseButtons.Left, System.Windows.Input.MouseButtonState.Released, clickCount, x, y);
            Thread.Sleep(5000);
            DOMDocument    document = BrowserView.Browser.GetDocument();
            List <DOMNode> divs     = document.GetElementsByTagName("input");

            foreach (DOMNode div in divs)
            {
                if (div.NodeType == DOMNodeType.ElementNode)
                {
                    DOMElement divElement = (DOMElement)div;
                    if (divElement.GetAttribute("class").Contains("yt-uix-form-input-text video-settings-title"))
                    {
                        divElement.SetInnerText("Titulo");
                    }
                }
            }
        }
        private void toolStripGoogleSearchToFile_Click(object sender, EventArgs e)
        {
            //Only for Google search results

            DOMDocument document      = browserView.Browser.GetDocument();
            string      allTextToFile = "";
            string      searchWord    = "";

            try
            {
                searchWord = document.GetElementByClassName("q qs").GetAttribute("href").Split('&')[0].ToString();
            }
            catch
            {
                MessageBox.Show("There is nothing to parse", "Error!");
            }


            if (searchWord.Contains("/search?q="))
            {
                ManualResetEvent          resetEvent = new ManualResetEvent(false);
                FinishLoadingFrameHandler listener   = new FinishLoadingFrameHandler((object sender1, FinishLoadingEventArgs e1) =>
                {
                    if (e1.IsMainFrame)
                    {
                        resetEvent.Set();
                    }
                });
                browserView.Browser.FinishLoadingFrameEvent += listener;

                try
                {
                    browserView.Browser.LoadURL("https://www.google.com.ua" + searchWord);
                    resetEvent.WaitOne(new TimeSpan(0, 0, 45));
                }
                finally
                {
                    browserView.Browser.FinishLoadingFrameEvent -= listener;
                }

                // Return address of Web page
                toolStripAddress.Text = browserView.Browser.URL.ToString();
                this.Text             = browserView.Browser.Title;

                int countDiv = document.GetElementsByTagName("div").Count;
                int countH3  = 0;

                //Quantity of <h3> tags in <div> tags
                for (int i = 0; i < countDiv; i++)
                {
                    int tmpH3 = document.GetElementsByTagName("div")[i].GetElementsByTagName("h3").Count;
                    countH3 += tmpH3;
                }

                //Search for <a> tags in <h3>
                for (int i = 0; i < countH3; i++)
                {
                    string text = "";
                    try
                    {
                        text = document.GetElementsByTagName("h3")[i].GetElementByTagName("a").InnerText.ToString();
                    }
                    catch
                    {
                        break;
                    }

                    //Make string for add info to file
                    string textToFile = "# " + (i + 1) + Environment.NewLine +
                                        "name =  " + text + Environment.NewLine +
                                        "hyperlink = " + document.GetElementsByTagName("h3")[i].GetElementByTagName("a").GetAttribute("href") + Environment.NewLine;

                    allTextToFile += textToFile + Environment.NewLine;
                }

                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter           = "TXT files (*.txt)|*.txt|All files (*.*)|*.*";
                saveFileDialog.FilterIndex      = 1;
                saveFileDialog.RestoreDirectory = true;

                //Choose path and name to save the file
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    //Format name of file
                    string txtFileName = saveFileDialog.FileName.ToString();
                    //string weq = saveFileDialog.
                    File.WriteAllText(txtFileName, allTextToFile);
                }
            }
        }