wyszukanie zdjęcia w okienki webbrowser

0

Witam mam pewien problem , chciałbym napisać pętle która sprawdza czy w danym okienku webbrowser znajduje się zdjęcie o nazwie "ajax-loader.gif" i pętla ma działać tak, jeżeli ten obrazek jest aktualnie w webbrowser to ciągle sprawdza czy nadal jest, jeśli tylko zniknie ma przejść w funkcji czyl opuszczamy pętle, napisałem coś takiego ale wydaje mi się że nie działa jak należy:

 HtmlElementCollection imgs = this.webBrowser1.Document.GetElementsByTagName("img");
                    foreach (HtmlElement lol in imgs)
                        if (lol.GetAttribute("src").Equals("/css/ajax-loader.gif"))
                        {
                            
                            MessageBox.Show("znalazłem obrazek");

                        }
                        else
                        {
                            MessageBox.Show("jeszcze nie");
                            
                        }
0

nikt mi nie potrafi pomóc ?

0

Ale w czym? W "wydawaniu się Tobie, że nie działa jak należy"?

0

Może ktoś by mnie pokierował a nie tylko krytykował co napisałem , po to tu piszę żeby się czegoś dowiedzieć bo dzięki takim forom internetowym człowiek potrafi się więcej dowiedzieć niż na jakiś kursach , nie działa mi to co napisałem więc zwracam się z prośbą tutaj , ale skoro takie odpowiedzi otrzymuje to ja dziękuje.

0

A co się dzieje po wykonaniu takiego kodu? Domyślam się, że wykonywany jest kod spod else. Sprawdziłeś w jakiejś przeglądarce jak dokładnie wygląda ścieżka wpisana w src? Kod wydaje mi się być dobry, jednak często ścieżka nie jest relatywna, tylko dokładna. Przykładowo obrazek 4programmers.net na dole strony w lewym kącie posiada właśnie całkowitą ścieżkę. Domyślam się, że podobnie może to się mieć na stronie, którą sprawdzasz.
Jeśli dalej nie trafiłem, to sprawdź - stawiając break pointa - czy kolekcja imgs, w której przechowujesz obrazki zawiera jakieś elementy - może coś jest źle z poprzednim kodem, a to strona niezaładowana, a to cokolwiek innego. Daj znać czy coś zdziałałeś.

0

Nie no , pobrałem źródło z kilku przeglądarek i wszędzie jest

<img src="/css/ajax-loader.gif">

Mimo tego dziękuję, że odpisałeś , będę nadal próbował , a jeszcze jedno pytanie której formy nalepiej używać wpf aplication czy Windows Form ?

0

Podobno WPF jest bardziej "na topie", chociaż ja sam używam starego, dobrego Windows Forms, chociaż zastanawiam się, czy się nie przesiąść.
Co do tego zdjęcia, to sprawdzając w Chromie, w Zbadaj Element jest właśnie pełna ścieżka. Próbuj, jak coś to pytaj oczywiście, i bardzo dobrze zrobisz sprawdzając to właśnie breakpointem. Tym można odczytać bardzo dużo informacji, które mogą się przydać.

0

użyłem tego brakpointa, co prawda po raz pierwszy bo dopiero się uczę, ale przy funkcji szukania obrazka mam coś takiego, nie wiem czy to istotne , jeśli tak to powiedzcie mi to lub jakoś nakierujcie :)

constructor	{System.Runtime.InteropServices.COMException (0x80020006): Unknown name. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
   at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
   at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
   at System.Dynamic.IDispatchComObject.GetMembers(IEnumerable`1 names)}	System.Runtime.InteropServices.COMException

jak na razie napisałem coś takiego, tylko proszę bez wyśmiewania ...mój pierwszy projekt w tym języku..

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
        }

        public void button1_Click(object sender, EventArgs e)
        {
            if (richTextBox1.Text == string.Empty)
            {
                MessageBox.Show("Nie wkleiłeś żadnych linków");

            }

            else

            {

                webBrowser1.Navigate("http://filebit.pl");
                webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(sprawdzenielogowania);
            }
   
        }
        private void sprawdzenielogowania(object sender, EventArgs e)
        {
                HtmlElementCollection elc9 = this.webBrowser1.Document.GetElementsByTagName("a");
                foreach (HtmlElement lolek in elc9)
                {
                    if (lolek.GetAttribute("class").Equals("wyloguj") && lolek.GetAttribute("title").Equals("Wyloguj"))
                    {
                        MessageBox.Show("jesteś już zalogowany");

                    }
                    else
                    {

                        wpisaniedanych();
                    }
                }
                
        }

       

         private void wpisaniedanych()
        {
       
           HtmlElement ele = webBrowser1.Document.GetElementById("login");
            if (ele != null)
              ele.InnerText = "djkristoph";

            ele = webBrowser1.Document.GetElementById("password");
           if (ele != null)
               ele.InnerText = "mojehaslo";
           
           HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");
           foreach (HtmlElement el in elc)
           {
               if (el.GetAttribute("type").Equals("submit") && el.GetAttribute("value").Equals("Logowanie"))
               {
                   el.InvokeMember("click");
               }
           }

         webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wklejenie);
            

        }
      

        private void wklejenie(object sender, EventArgs e)
        {
            HtmlElement okienko = webBrowser1.Document.GetElementById("newLinkList");
            if (okienko != null)
                okienko.InnerText = richTextBox1.Text;

           
            //zaznaczenie kwadracika 

           // HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");
           //foreach (HtmlElement el in elc)
           //{
           //    if (el.GetAttribute("type").Equals("checkbox"))
           //     {
           //         el.SetAttribute("checked", "true");
           //     }
           //}

            okienko = webBrowser1.Document.GetElementById("newLinkButton");
            if (okienko != null)
            okienko.InvokeMember("click");


            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(pobranielinkow);
        }

            private void pobranielinkow(object sender, EventArgs e)
            {


                HtmlElementCollection imgs = this.webBrowser1.Document.GetElementsByTagName("img");
                foreach (HtmlElement lol in imgs)
                    if (lol.GetAttribute("src").Equals("http://filebit/css/ajax-loader.gif"))
                    {
                        
                        MessageBox.Show("czekam");

                    }

                    else
                    {

                        HtmlElementCollection odczyt = this.webBrowser1.Document.GetElementsByTagName("a");
                        foreach (HtmlElement odczytanie in odczyt)
                            if (odczytanie.GetAttribute("title").Equals("Pobierz plik"))
                            {

                                MessageBox.Show(odczytanie.InnerText);

                            }

              }

                   
                   

                    //HtmlElement okienko = webBrowser1.Document.GetElementById("fileHandlerOld");
                    //if (okienko != null)
                    //{
                    //    MessageBox.Show("jeszcze nie");
                    //    sprawdzenie = "nie";
                    //}
 
                
            }
            

        }

    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1