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

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

            browserView.Browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView.GetComponent());

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

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    Browser     myBrowser = e.Browser;
                    DOMDocument document  = myBrowser.GetDocument();
                    DOMElement  link      = document.GetElementById("button");
                    if (link != null)
                    {
                        link.Click();
                    }
                }
            };
            browserView.Browser.LoadHTML("<html><body><button id='button' " +
                                         "onclick=\"alert('Button has been clicked!');\">Click Me!</button>" +
                                         "</body></html>");
        }
Пример #2
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>");
        }
Пример #3
0
        public void IntentarSubirVideos_Tick(object sender, EventArgs e)
        {
            TiempoDeSubir++;
            progressBar1.Maximum = 60 * 30;
            try
            {
                progressBar1.Value = TiempoDeSubir;
            }
            catch { }
            if (TiempoDeSubir > 60 * 30 && descasar >= 24)
            {
                descasar++;
                TiempoDeSubir = 0;
            }
            if (descasar >= 48)
            {
                descasar = 0;
            }
            if (TiempoDeSubir > 60 * 30 && descasar < 24)
            {
                if (VideosNuevos() > -1)
                {
                    descasar++;
                    TiempoDeSubir = 0;
                    string CanalDondeSubir       = Directory.GetParent(DirDeVideosDeVideos[0]).Name;
                    string URLdelCanalDondeSubir = canales.FirstOrDefault(xt => xt.Nombre.Contains(CanalDondeSubir)).URL;
                    waitEvent.Reset();
                    BrowserView.Browser.LoadURL(URLdelCanalDondeSubir);
                    dialogHandler.DireccionDeVideo    = DirDeVideosDeVideos[0];
                    BrowserView.Browser.DialogHandler = dialogHandler;
                    waitEvent.WaitOne();

                    Thread.Sleep(3000);
                    DOMDocument document = BrowserView.Browser.GetDocument();
                    DOMNode     div      = document.GetElementById("start-upload-button-single");
                    DOMElement  input    = div.GetElementByTagName("button");
                    //Coordinates of the input element
                    int x = input.BoundingClientRect.X;
                    int y = input.BoundingClientRect.Y;
                    //Modify to click on element. Otherwise - beside
                    x += 1;
                    y += 1;
                    BeginInvoke(new Action(() =>
                    {
                        BrowserView.InputSimulator.SimulateMouseButtonEvent(MouseButton.Left, MouseButtonState.Pressed,
                                                                            1, x, y);
                        //Simulate the button click
                        Thread.Sleep(50);
                        BrowserView.InputSimulator.SimulateMouseButtonEvent(MouseButton.Left, MouseButtonState.Released,
                                                                            1, x, y);
                    }));
                    Thread.Sleep(25000);
                    Directory.Delete(DirDeVideosDeVideos[0]);
                    canales.Remove(canales.FirstOrDefault(xt => xt.Nombre.Contains(CanalDondeSubir)));
                }
            }
        }
Пример #4
0
        public Form1()
        {
            InitializeComponent();

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

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

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document = e.Browser.GetDocument();
                    DOMElement  button   = document.GetElementById("button-id");
                    button.Children[0].NodeValue = "New Button Name";
                }
            };
            browserView.Browser.LoadHTML("<html><body><button id='button-id'>Button</button></body></html>");
        }
Пример #5
0
            public WindowMain()
            {
                Browser browser = BrowserFactory.Create();

                browserView = new WPFBrowserView(browser);

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

                        var myEvent = browser.CreateEvent("MyEvent");

                        DOMNode root = document.GetElementById("root");

                        DOMEventHandler domEvent = delegate(object s, DOMEventArgs evt)
                        {
                            if (evt.EventType == myEvent.EventType)
                            {
                                DOMNode    textNode  = document.CreateTextNode("Some text");
                                DOMElement paragraph = document.CreateElement("p");
                                paragraph.AppendChild(textNode);
                                root.AppendChild(paragraph);
                            }
                        };

                        root.AddEventListener(myEvent, domEvent, false);

                        Thread.Sleep(3000);
                        root.DispatchEvent(myEvent);
                    }
                };

                Content = browserView;

                Width        = 1024;
                Height       = 768;
                this.Loaded += WindowMain_Loaded;
            }
Пример #6
0
 static void Main(string[] args)
 {
     using (Browser browser = BrowserFactory.Create())
     {
         ManualResetEvent waitEvent = new ManualResetEvent(false);
         browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
         {
             if (e.IsMainFrame)
             {
                 DOMDocument document = e.Browser.GetDocument();
                 DOMElement  link     = document.GetElementById("link");
                 Dictionary <String, String> attributes = link.Attributes;
                 foreach (var attribute in attributes)
                 {
                     Console.Out.WriteLine(attribute.Key + " = " + attribute.Value);
                 }
                 waitEvent.Set();
             }
         };
         browser.LoadHTML("<html><body><a href='#' id='link' title='link title'></a></body></html>");
         waitEvent.WaitOne();
     }
 }
Пример #7
0
        private void button1_Click(object sender, EventArgs e)
        {
            DOMDocument document = browserView.Browser.GetDocument();

            //XPath expressions
            XPathResult resultNum     = document.Evaluate("count(//div)");
            XPathResult resultNumSpec = document.Evaluate("count(//div[@class='col-sm-4 prod-thumb'])");
            XPathResult result        = document.Evaluate("string( / html / body / div[2] / div[2] / div[1] / div[2] / div / div[1] / div[2] / h3 / a)");
            XPathResult resultNodes   = document.Evaluate("/ html / body / div[2] / div[2] / div[1] / div[2] / div / *");

            var pagecontent = document.GetElementById("contact");

            //XPath expressions
            XPathResult resultСontactNum     = pagecontent.Evaluate("count(.//div)");
            XPathResult resultСontactNumSpec = pagecontent.Evaluate("count(.//div[@class='form-group'])");
            XPathResult resultСontact        = pagecontent.Evaluate("string(./form/div/h5)");
            XPathResult resultСontactNodes   = pagecontent.Evaluate("./form/fieldset/div[4]/*");


            //Check if XPath result type is correct
            if (resultNum.IsNumber && resultNumSpec.IsNumber)
            {
                label1.Text = "Quantity of all <div> = " + resultNum.Number;
                label2.Text = "Quantity of <div> with class 'col-sm-4 prod-thumb' = " + resultNumSpec.Number;
            }
            else
            {
                label1.Text = "Error";
                label2.Text = "Error";
            }

            //Check if XPath result type is correct
            if (resultСontactNum.IsNumber && resultСontactNumSpec.IsNumber)
            {
                label6.Text = "Quantity of all <div> in <div id='contact'> = " + resultСontactNum.Number;
                label7.Text = "Quantity of <div> with class 'form-group'  in <div id='contact'> = " + resultСontactNumSpec.Number;
            }
            else
            {
                label6.Text = "Error";
                label7.Text = "Error";
            }


            //Check if XPath result type is correct
            if (result.IsString)
            {
                label3.Text = "Text from selected element: " + result.String;
            }
            else
            {
                label3.Text = "Error";
            }

            //Check if XPath result type is correct
            if (resultСontact.IsString)
            {
                label8.Text = "Text from selected element: " + resultСontact.String;
            }
            else
            {
                label8.Text = "Error";
            }


            //Check if XPath result type is correct
            if (resultNodes.IsIterator)
            {
                label4.Text = resultNodes.ResultType.ToString();
            }
            else
            {
                label4.Text = "Mistake";
            }

            //Check if XPath result type is correct
            if (resultСontactNodes.IsIterator)
            {
                label9.Text = resultСontactNodes.ResultType.ToString();
            }
            else
            {
                label9.Text = "Mistake";
            }

            //Get list with DOMNodes
            var tmp = resultNodes.Iterator.Select(item => item.Node.Children);

            //Get list with DOMNodes
            var tmpСontact = resultСontactNodes.Iterator.Select(item => item.Node.Children);

            try
            {
                //Extract list with DOMNodes
                foreach (var item in tmp)
                {
                    foreach (var item1 in item)
                    {
                        //Extract DOMNode from the list
                        label4.Text = "Node type: " + item1.NodeType;
                        label5.Text = "Node name: " + item1.NodeName;
                    }
                }
                //Extract list with DOMNodes
                foreach (var item in tmpСontact)
                {
                    foreach (var item1 in item)
                    {
                        //Extract DOMNode from the list
                        label9.Text  = "Node type: " + item1.NodeType;
                        label10.Text = "Node name: " + item1.NodeName;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }