• 30-01-2023, 20:40:48
    #1
    EDİT: Sorunu çözdüm. Kodda ufak biraz oynama yaparak formun olup olmadığı kontrolünü yaparak if-else için yeni bir emir atadım. Aşağıda benzeri sorunu yaşayanlar olursa diye görsel bırakıyorum:



    Bir oyun için kendi çapımda beni idare edecek kadar bir bot yazdım. Ancak bir konuda takıldım. Aşağıda görselini bırakacağım kodlama sorunsuz şekilde çalışıyor. Ancak nasıl oluyorsa bazen 40 dakika sonra bazen de 10 dakika sonra hata veriyor. Hep aynı kod ile hata kodunu gösteriyor. Bu koda try-catch versem bile işe yaramıyor çünkü if-else döngülerince aranan şartlar bu kodun çalışmasını gerektiriyor. Saçma olan kısım ise ben zegar3 ID'sine sahip kısmı bilerek bu bölüme ekledim ki burada yapması gereken aslında şudur;

    label2'de "Keşif seferine geç" yazıyorsa if olarak işleme başlayacak ve form1 içerisinde ki input butonuna tıklayarak işlemini gerçekleştirecek. İlk başta hatayı acaba o an browser başka bir sekmeye filan geçiyor ya da başka sekmede mi kalıyor diye düşünerekten saldırı öncesinde gideceği URL ile gittiği URL eşit mi diye kontrol için if koydum. Burada bir mantıklı çıkış bulamıyorum bunu nasıl çözebiliriz bilen varsa sevinirim.

    if (label2.Text == "Keşif seferine geç")
                            {
                                await Task.Delay(2000); // wait for 5 seconds
    
                                //////////////////
                                ///
    
                                HtmlElement linkElement = webBrowser1.Document.GetElementById("zegar3");
    
                                var zegar3 = webBrowser1.Document.GetElementById("zegar3");
                                var targetUrl = zegar3.Parent.GetAttribute("href");
    
                                if (webBrowser1.Url.ToString().EndsWith(targetUrl))
                                {
                                    HtmlElement formElement = webBrowser1.Document.GetElementsByTagName("form")[1];
    
                                    // Get a collection of input elements within the form element
                                    HtmlElementCollection inputElements = formElement.GetElementsByTagName("input");
    
                                    // Iterate through the collection of input elements
                                    foreach (HtmlElement inputElement in inputElements)
                                    {
                                        // Check if the input element has the class "expedition_button"
                                        if (inputElement.GetAttribute("className") == "expedition_button")
                                        {
                                            // Simulate a click on the input element
                                            inputElement.InvokeMember("click");
                                            listBox1.Items.Insert(0, DateTime.Now.ToString("dd.MM.yy - HH:mm") + " Keşif Saldırısı Gerçekleşti");
                                            timer3.Start();
                                            // Exit the loop
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    listBox1.Items.Insert(0, DateTime.Now.ToString("dd.MM.yy - HH:mm") + " Keşif Saldırısı sorunlu");
                                    timer3.Start();
                                }
  • 30-01-2023, 20:55:18
    #2
    Hatayı da Görüntü alıp koyarmısın ? Ne hatası veriyor ?
  • 30-01-2023, 20:56:56
    #3
    redgen01 adlı üyeden alıntı: mesajı görüntüle
    Hatayı da Görüntü alıp koyarmısın ? Ne hatası veriyor ?
    Hatayı null döngüsü bulamadı diyor. Hata verirse atacağım. Birde şöyle bir yöntem geldi aklıma şuan bu konuyu paylaştıktan sonra şöyle bir revize yaptım kod içerisinde; form[1] değerinin aranmasını ve var ise null döngüsünü belirtmesini söyledim kodlamaya. Bakalım o şekilde hata vermeden ilerlerse güzel olur.