Отладка проектов в VisualStudio, упрощаем себе жизнь.

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
Удалил библиотеку System.Xml и добавил заново (другие не удалялись), результат
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Удалил библиотеку System.Xml и добавил заново (другие не удалялись), результат
Вам надо путь к библиотекам ZennoPoster поправить.
Вот эти удалите из сборки и добавьте заново из папки с постером:
Global.dll
ZennoLab.CommandCenter.dll
ZennoLab.InterfacesLibrary.dll

а System.Xml тут вообще не приделах.
 
  • Спасибо
Реакции: Porosenok

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Я когда обновился под 5.11.4.0 у меня зеннопостер на процессе создания инстанса в VS 2017 крушил (закрывал без ошибки) консольное приложение, что ни 1 из многих способов не смог отловить эту ошибку. Аналогично было и в приложении Win forms - оно сразу закрывалось
Этот код не использовал, но как-то интересно стало что скрыто в либе, что так рушит всё на своем пути
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Я когда обновился под 5.11.4.0 у меня зеннопостер на процессе создания инстанса в VS 2017 крушил (закрывал без ошибки) консольное приложение, что ни 1 из многих способов не смог отловить эту ошибку. Аналогично было и в приложении Win forms - оно сразу закрывалось
Этот код не использовал, но как-то интересно стало что скрыто в либе, что так рушит всё на своем пути
Global.dll надо подключить и потом проинициализировать через GlobalSettings.Init
Тогда не будет падать.
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Отлично, первая часть решена, остался project.
C project,ом чуть сложнее, он не поддерживает маршалинг, и на вскидку приходит 2 решения, или сделать прокси объект поддерживающий маршалинг, или делать себе локальную копию используя интерфейс.

Я остановился на 2м варианте, т.к. с маршалингом не возился и времени возиться не было, да и во время написания и дебага в студии, мне обычно не надо делать изменения в проекте.
Сделал я прокси для IZennoPosterProjectModel.
Крашится ProjectMaker после нескольких повторных обращений из VisualStudio.
Также при таком подходе в дебаггере невозможно смотреть содержимое project.
2017-08-05 (2).png
 
  • Спасибо
Реакции: Adigen

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Сделал я прокси для IZennoPosterProjectModel.
Крашится ProjectMaker после нескольких повторных обращений из VisualStudio.
Также при таком подходе в дебаггере невозможно смотреть содержимое project.
Посмотреть вложение 22527
Я думаю тут надо делать свою реализацию интерфейса IZennoPosterProjectModel c поддержкой маршалинга, которая будет просто заниматься переадресацией вызовов, и в PM пробовать запускать ее воркером, и затем из студии уже обращаться к ней но х.з. правильно думаю или нет, пока времени возиться нет :(.
 

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
Подскажите, а как можно подключить таблицы/списки, используемые в постере?
 

shtift

Client
Регистрация
29.07.2015
Сообщения
148
Благодарностей
291
Баллы
63
лезем в доки зеннопостера, находим там возможность внешнего подключения к инстансу
А можете дать ссылку?
Что-то не могу найти где этот момент указан в доках.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
  • Спасибо
Реакции: shtift

sanyo

Client
Регистрация
29.06.2014
Сообщения
112
Благодарностей
47
Баллы
28
Пожалуйста, подскажите, кто какие либы использует для очень краткого описания сценариев во внешних программах (например вс студии) типа такого:


Код:
    Public Function Test()
        With AdvancedZPInstance.Create()
            .Navigate("https://passport.yandex.ru/registration/mail")
            .Find("firstname").SetValue("Name")
            .Find("lastname").SetValue("LastName")
            .Find("login").SetValue("a" & Rnd() * 100000)
            System.Threading.Thread.Sleep(1000)
            .Find("password").SetValue("password1")
            .Find("password_confirm").SetValue("password1")
            .FindByTag("label", "class", "human-confirmation-via-captcha").Click()
            .FindByTag("span", "class", "login__suggestedLogin").Click()
            .Find("hint_question_id").Click()
            .FindByTag("a", "class", "_nb-select-a").Click()
            .Find("hint_question").SetValue("Test")
            .Find("hint_answer").SetValue("Test")


        End With


Public Class AdvancedZPInstance
  Inherits ZennoLab.CommandCenter.Instance


  Sub New(URL As String, Port As Integer, Address As String)
  MyBase.New(URL, Port, Address)
  End Sub

  Public Shared Function Create() As AdvancedZPInstance
  [Global].[GlobalSettings].Init(IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ZennoLab\ZennoPoster\5\Settings\globalsettings.settings"))
  Dim URL As String = "", Port As Integer, Address As String = ""
  ZennoPoster.GetNewInstance(URL, Port, Address)
  ZennoLab.CommandCenter.ZennoPoster.ShowInstance(URL, Port, Address)
  AdvancedHTMLElement.ZPI = New AdvancedZPInstance(URL, Port, Address)
  Create = AdvancedHTMLElement.ZPI
  End Function


  Public Function ClearCache()
  With Me
  .ClearCookie()
  .ClearCache()
  End With
  End Function

  Public Function Navigate(URL As String, Optional Referer As String = "")
  Dim Tab As Tab = Me.ActiveTab
  If ((Tab.IsVoid) Or (Tab.IsNull)) Then
  Return -1
  End If
  If (Tab.IsBusy) Then Tab.WaitDownloading()
  Tab.Navigate(URL, Referer)
  If (Tab.IsBusy) Then Tab.WaitDownloading()
  End Function
А то поди зря изобретаю велосипед?

Видел складчину:
https://skladchik.com/threads/zennoposter-Швейцарский-нож-разработчика.177992/

Но там вроде другое, кто какие либы еще знает?
 

shtift

Client
Регистрация
29.07.2015
Сообщения
148
Благодарностей
291
Баллы
63
Но там вроде другое, кто какие либы еще знает?
В либе по ссылке реализовано много методов расширения, что делает синтаксис описания шаблонов гораздо короче. В VB не силен, но, судя по всему, вы и хотите это получить.
 

sanyo

Client
Регистрация
29.06.2014
Сообщения
112
Благодарностей
47
Баллы
28
Пожалуйста, подскажите, аналогичено из Visual Studio можно автоматизировать ZennoDroid? У него похожая объектная модель и API?
 

Juniorcpa

Client
Регистрация
27.05.2014
Сообщения
2 031
Благодарностей
1 286
Баллы
113

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43
пытался отлаживать гет пост запрос не пашет (.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43
я думал есть решение , без запуска самого постера , так как у меня постер на сервере , а на проджекте пишу проекты уже отдельно.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
я думал есть решение , без запуска самого постера , так как у меня постер на сервере , а на проджекте пишу проекты уже отдельно.
Есть, подключаем библиотеку xNet, и удивляемся, как-же мы раньше без нее слали запросы )
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
куда в проджект или в студию.
В студии для отладки, в проджекте для работы, это библиотека для работы с запросами на C#, с открытым исходным кодом и поддержкой всех типов проксей.
https://github.com/X-rus/xNet

Имхо лучшее решение что есть для .net, хоть и давненько не обновлялась
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

radv

Client
Регистрация
11.05.2015
Сообщения
3 788
Благодарностей
1 952
Баллы
113
А еще можно формы на WinForms из VisualStudio перенести в ZennoPoster об этом статья в 9 конкурсе статей.
 
  • Спасибо
Реакции: Koqpe

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
А еще можно формы на WinForms из VisualStudio перенести в ZennoPoster об этом статья в 9 конкурсе статей.
Только, имхо, их проще тогда в длл запихнуть и покойно из нее дергать.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 788
Благодарностей
1 952
Баллы
113
Только, имхо, их проще тогда в длл запихнуть и покойно из нее дергать.
Это почти тоже самое, что вручную форму делать. Все разновидности формы не запихаешь (или надо время на это потратить).
 

Ananaset Hurik

Новичок
Регистрация
11.02.2017
Сообщения
11
Благодарностей
1
Баллы
3
Adigen, есть ли версия под зенку 5.18.0.0 и новее? Как ввели ICookieContainer, так теперь не получается им пользоваться при дебаге. Было бы здорово, если бы скинул обновлённую версию.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Adigen, есть ли версия под зенку 5.18.0.0 и новее? Как ввели ICookieContainer, так теперь не получается им пользоваться при дебаге. Было бы здорово, если бы скинул обновлённую версию.
У меня версия 5.12 дальше не обновлял, так что глянуть негде.

А так, я думаю, что вам надо просто обновить интерфейсы постера в студии и все, ctl + . и студия преложит добавить загушки для того чего не хватает.
 
Последнее редактирование:
  • Спасибо
Реакции: Ananaset Hurik

andrey-ka

Client
Регистрация
03.06.2018
Сообщения
855
Благодарностей
246
Баллы
43
Гениально!
Спасибо.
В 5.27 еще не появилась возможность подключаться к project напрямую?
 

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63
поменял ссылки на Global и прочие. Куда дальше копать?
 

Вложения

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63
Вроде запустил, но все равно ошибка
 

Вложения

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)