Всем привет. Хочу предложить свою библиотеку, которая облегчит вам процесс написания шаблонов на c# в zennoposter. Библиотека выдается в открытом виде (закомментирую код для простоты понимания).
Что внутри:
Спойлер: описание методов
Screenshot() – делает скриншот и кладет в папку конкретного потока.
ZapisLog(string message) – запись в лог и выход по ошибке. Параметры: какое сообщение записать. Работает в двух режимах:
· В расширенном режиме лога запись идет в папку конкретного потока (в txt файл). Также делается скриншот и сохраняется исходный код стр, которые также кладутся в эту папку
· В обычном режиме делается запись в лог в окно «ошибки»
ZapisVTxtFile(string zapis) – запись в txt файл в папку конкретного потока. Параметры: какое сообщение записать. Может пригодиться, когда надо отслеживать как ведет себя каждый поток по отдельности.
Perehod(string url, bool pausa = true, int pausa_ot = 5000, int pausa_do = 8000) – переход на страницу. Параметры: урл куда переходим, нужна ли пауза после перехода по урл (необязательно - по умолчанию true), пауза от в миллисекундах(необязательно - по умолчанию 5000), пауза до в миллисекундах(необязательно - по умолчанию 8000).
Perehod(string url, string reloadBrowser, bool pausa = true, int pausa_ot = 5000, int pausa_do = 8000) – переход на страницу (2 перегрузка). Используется при первом заходе. Отличается тем, что проверяет прокси на работоспособность. Параметры: урл куда переходим, нужно ли перезагружать браузер в случае неудачного захода (если да, то прописываем «yes»), нужна ли пауза после перехода по урл (необязательно - по умолчанию true), пауза от в миллисекундах(необязательно - по умолчанию 5000), пауза до в миллисекундах(необязательно - по умолчанию 8000).
PoiskElement(string xpath, string message = "ошибка при поиске элемента/клике/установке значения - ", int skolko=30) – поиск элемента с выходом по ошибке, если он не будет найден. Параметры: xpath путь искомого элемента, какое сообщение выводить при ошибке(необязательно - по умолчанию xpath путь не найденного элемента), сколько ждать появления элемента (если его нет) в СЕКУНДАХ(необязательно - по умолчанию 30 сек). Возвращает HtmlElement.
PoiskElement(string xpath, int number, int skolko=5, bool perezahod = false) – поиск элемента без выхода по ошибке (2 перегрузка). Параметры: xpath путь, номер элемента, сколько ждать в секундах(необязательно – по умолчанию 5 секунд), нужно ли пытаться перезайти на страницу, если элемент не находится (необязательно – по умолчанию нет). Возвращает bool (true если найден, false если нет).
ClickElement(string xpath, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 2000, int pausa_do = 5000, bool scroll = false, bool sostoyanieZagruzki = false, bool poiskplashki = false) – клик по элементу с использованием мышки. Параметры: xpath путь для 1-го элемента по которому кликаем, номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 3000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false), отслеживать или нет начала ли страница перезагружаться(необязательно - по умолчанию false).
SetValueElement(string xpath, string value, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 3000, int pausa_do = 7000, bool scroll = false) – установка значения с использованием мышки. Параметры: xpath путь до элемента, устанавливаемое значение, номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 3000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false), отслеживать или нет начала ли страница перезагружаться(необязательно - по умолчанию false).
SetValueSelectElement(string xpath, string value, bool itselect = false, string emulation = "Full", bool click = true, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 3000, int pausa_do = 7000, bool scroll = false) – установка значения для select. Параметры: xpath путь до элемента, устанавливаемое значение, сказать ли команде SetValue, что это Select(необязательно - по умолчанию false), уровень эмуляции: None, Middle, Full, SuperEmulation(необязательно: по умолчанию Full), кликнуть ли по элементу перед установкой значения(необязательно - по умолчанию true), номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 2000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false).
UdalenieDubleiIzSpiska(List<string> spisok) – удаление дублей из списка List. Параметры: список List
Во входных настройках у нас будет два режима лога:
обычный
расширенный
В расширенном режиме для каждого потока создается своя папка. В каждой папке при каждом действии (клике, установке значения, переходе) будет делаться скриншот и класться в эту папку. При ошибке будет также делаться запись в конкретную папку (полезно, если ошибка возникает время от времени).
Для закрепления напишем какой-нибудь простой шаблон (это будет регер рамблер почт или майл почт).
1 месяц поддержки, если будут вопросы.
Бонусы:
Методичка по поиску элементов с помощью xpath
Упаковка библиотеки в dll с помощью visual studio и её подключение (чтобы не занимала место в общем коде)
Для получения бонусов поставить в подпись и 1 рекламный пост. Если есть вопросы, задавайте.
Что внутри:
Спойлер: описание методов
Screenshot() – делает скриншот и кладет в папку конкретного потока.
ZapisLog(string message) – запись в лог и выход по ошибке. Параметры: какое сообщение записать. Работает в двух режимах:
· В расширенном режиме лога запись идет в папку конкретного потока (в txt файл). Также делается скриншот и сохраняется исходный код стр, которые также кладутся в эту папку
· В обычном режиме делается запись в лог в окно «ошибки»
ZapisVTxtFile(string zapis) – запись в txt файл в папку конкретного потока. Параметры: какое сообщение записать. Может пригодиться, когда надо отслеживать как ведет себя каждый поток по отдельности.
Perehod(string url, bool pausa = true, int pausa_ot = 5000, int pausa_do = 8000) – переход на страницу. Параметры: урл куда переходим, нужна ли пауза после перехода по урл (необязательно - по умолчанию true), пауза от в миллисекундах(необязательно - по умолчанию 5000), пауза до в миллисекундах(необязательно - по умолчанию 8000).
Perehod(string url, string reloadBrowser, bool pausa = true, int pausa_ot = 5000, int pausa_do = 8000) – переход на страницу (2 перегрузка). Используется при первом заходе. Отличается тем, что проверяет прокси на работоспособность. Параметры: урл куда переходим, нужно ли перезагружать браузер в случае неудачного захода (если да, то прописываем «yes»), нужна ли пауза после перехода по урл (необязательно - по умолчанию true), пауза от в миллисекундах(необязательно - по умолчанию 5000), пауза до в миллисекундах(необязательно - по умолчанию 8000).
PoiskElement(string xpath, string message = "ошибка при поиске элемента/клике/установке значения - ", int skolko=30) – поиск элемента с выходом по ошибке, если он не будет найден. Параметры: xpath путь искомого элемента, какое сообщение выводить при ошибке(необязательно - по умолчанию xpath путь не найденного элемента), сколько ждать появления элемента (если его нет) в СЕКУНДАХ(необязательно - по умолчанию 30 сек). Возвращает HtmlElement.
PoiskElement(string xpath, int number, int skolko=5, bool perezahod = false) – поиск элемента без выхода по ошибке (2 перегрузка). Параметры: xpath путь, номер элемента, сколько ждать в секундах(необязательно – по умолчанию 5 секунд), нужно ли пытаться перезайти на страницу, если элемент не находится (необязательно – по умолчанию нет). Возвращает bool (true если найден, false если нет).
ClickElement(string xpath, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 2000, int pausa_do = 5000, bool scroll = false, bool sostoyanieZagruzki = false, bool poiskplashki = false) – клик по элементу с использованием мышки. Параметры: xpath путь для 1-го элемента по которому кликаем, номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 3000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false), отслеживать или нет начала ли страница перезагружаться(необязательно - по умолчанию false).
SetValueElement(string xpath, string value, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 3000, int pausa_do = 7000, bool scroll = false) – установка значения с использованием мышки. Параметры: xpath путь до элемента, устанавливаемое значение, номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 3000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false), отслеживать или нет начала ли страница перезагружаться(необязательно - по умолчанию false).
SetValueSelectElement(string xpath, string value, bool itselect = false, string emulation = "Full", bool click = true, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 3000, int pausa_do = 7000, bool scroll = false) – установка значения для select. Параметры: xpath путь до элемента, устанавливаемое значение, сказать ли команде SetValue, что это Select(необязательно - по умолчанию false), уровень эмуляции: None, Middle, Full, SuperEmulation(необязательно: по умолчанию Full), кликнуть ли по элементу перед установкой значения(необязательно - по умолчанию true), номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 2000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false).
UdalenieDubleiIzSpiska(List<string> spisok) – удаление дублей из списка List. Параметры: список List
Во входных настройках у нас будет два режима лога:
обычный
расширенный
В расширенном режиме для каждого потока создается своя папка. В каждой папке при каждом действии (клике, установке значения, переходе) будет делаться скриншот и класться в эту папку. При ошибке будет также делаться запись в конкретную папку (полезно, если ошибка возникает время от времени).
Для закрепления напишем какой-нибудь простой шаблон (это будет регер рамблер почт или майл почт).
1 месяц поддержки, если будут вопросы.
Бонусы:
Методичка по поиску элементов с помощью xpath
Упаковка библиотеки в dll с помощью visual studio и её подключение (чтобы не занимала место в общем коде)
Для получения бонусов поставить в подпись и 1 рекламный пост. Если есть вопросы, задавайте.
Для просмотра содержимого вам необходимо авторизоваться
Для просмотра содержимого вам необходимо авторизоваться