Переход по href с постоянным изменением окончания ссылки - C#

Узнай цену своей работы

Формулировка задачи:

в общем, нужно написать мини бот для меня ленивого для фарма ресурса, и все бы хорошо и весело юзал бы я всякие autoit или clickermann, но выделяются две проблемы 1)координаты кнопки не постоянны 2)как я и говорил ссылка так же не постоянна небольшой скрин, вдруг я что-то не так объяснил, ну и наверняка есть способы как сделать это удобнее и быстрее, было бы неплохо получить советы/подсказки что юзать и как

Решение задачи: «Переход по href с постоянным изменением окончания ссылки»

textual
Листинг программы
using System;
using System.Threading.Tasks;
using Awesomium.Core;
 
namespace MarafonService
{
    public static class WVExtesions
    {
        public static Task<bool> WaitForLoadingComplete(this IWebView wv)
        {
            return WaitForLoadingComplete(wv, new TimeSpan(0, 0, 15));
        }
        public static Task<bool> WaitForLoadingComplete(this IWebView wv, TimeSpan timeout)
        {
            var tcs = new TaskCompletionSource<bool>();
            System.Timers.Timer t = new System.Timers.Timer(timeout.TotalMilliseconds);
            t.Elapsed += (s, e) =>
            {
                ((System.Timers.Timer)t).Dispose();
                tcs.TrySetResult(false);
            };
            FrameEventHandler handler = ((sender, e) =>
            {
                if (!(sender as IWebView).IsLoading)
                {
                    tcs.TrySetResult(true);
                }
            }
            );
            t.Start();
            wv.LoadingFrameComplete += handler;
            tcs.Task.ContinueWith(_ =>
            {
                t.Dispose();
                wv.LoadingFrameComplete -= handler;
            }, TaskContinuationOptions.ExecuteSynchronously);
            return tcs.Task;
        }
 
        public static void JsFireEvent(this IWebView wv, string getElementQuery, string eventName)
        {
            wv.ExecuteJavascriptWithResult(@"
                        function fireEvent(element,event) {
                            var evt = document.createEvent('HTMLEvents');
                            evt.initEvent(event, true, true ); // event type,bubbling,cancelable
                            element.dispatchEvent(evt);                                 
                        }
                        " + String.Format("fireEvent({0}, '{1}');", getElementQuery, eventName));
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5