Как найти ошибку?

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 109
Благодарностей
195
Баллы
63
Всем привет)
есть такой код:
C#:
Tab tab = instance.ActiveTab;
Random rnd = new Random();

bool advanced_on = Convert.ToBoolean(project.Variables["advanced_on"].Value);
bool advanced_braus = Convert.ToBoolean(project.Variables["advanced_braus"].Value);
bool advanced_pic_load = Convert.ToBoolean(project.Variables["advanced_pic_load"].Value);
bool advanced_frame_on = Convert.ToBoolean(project.Variables["advanced_frame_on"].Value);
bool advanced_java_on = Convert.ToBoolean(project.Variables["advanced_java_on"].Value);
bool advanced_javascript_on = Convert.ToBoolean(project.Variables["advanced_javascript_on"].Value);
bool advanced_flash_on = Convert.ToBoolean(project.Variables["advanced_flash_on"].Value);
bool advanced_aud_vid_on = Convert.ToBoolean(project.Variables["advanced_aud_vid_on"].Value);
bool advanced_plagins_on = Convert.ToBoolean(project.Variables["advanced_plagins_on"].Value);
bool advanced_plag_in_same_window = Convert.ToBoolean(project.Variables["advanced_plag_in_same_window"].Value);
bool advanced_canel_adv = Convert.ToBoolean(project.Variables["advanced_canel_adv"].Value);
bool advanced_cancel_ajax = Convert.ToBoolean(project.Variables["advanced_cancel_ajax"].Value);
bool advanced_cancel_flash = Convert.ToBoolean(project.Variables["advanced_cancel_flash"].Value);
bool advanced_cancel_post_get = Convert.ToBoolean(project.Variables["advanced_cancel_post_get"].Value);
bool advanced_webrtc_on = Convert.ToBoolean(project.Variables["advanced_webrtc_on"].Value);
bool advanced_aud_vid_in_wertc_on = Convert.ToBoolean(project.Variables["advanced_aud_vid_in_wertc_on"].Value);
//bool advanced_sis_shrift_on = Convert.ToBoolean(project.Variables["advanced_sis_shrift_on"].Value);
string advanced_donottrack = Convert.ToString(project.Variables["advanced_donottrack"].Value);

//чистим кеш и куки
instance.ClearCache();
instance.ClearCookie();

//вкл продвинутые настройки
if(advanced_on){

//Обработка элементов
    if(advanced_braus){
        instance.UseBrowserWithoutContent = true;
        project.SendInfoToLog("Включена опция - браузер без отображения содержимого");
    }else{
        instance.UseBrowserWithoutContent = false;
        project.SendInfoToLog("Опция 'Браузер без отображения содержимого' выключена - браузер работает в обычном режиме");
    }
    if(advanced_pic_load){
        instance.LoadPictures = false;
        project.SendInfoToLog("Загрузка картинок отключена");
    }else{
        instance.LoadPictures = true;
        project.SendInfoToLog("Загрузка картинок включена");
    }
    if(advanced_frame_on){
        instance.IgnoreFrameRequests = false;
        project.SendInfoToLog("Загрузка фреймов отключена");
    }else{
        instance.IgnoreFrameRequests = true;
        project.SendInfoToLog("Загрузка фреймов включена");
    }
    if(advanced_java_on){
        instance.UseJavaScripts = false;
        project.SendInfoToLog("Загрузка java отключена");
    }else{
        instance.UseJavaScripts = true;
        project.SendInfoToLog("Загрузка java включена");
    }
    if(advanced_javascript_on){
        instance.UseJsFeatures = false;
        project.SendInfoToLog("Загрузка javascript отключена");
    }else{
        instance.UseJsFeatures = true;
        project.SendInfoToLog("Загрузка javascript включена");
    }
    if(advanced_flash_on){
        instance.IgnoreFlashRequests = true;
        project.SendInfoToLog("Загрузка flash включена");
    }else{
        instance.IgnoreFlashRequests = false;
        project.SendInfoToLog("Загрузка javascript отключена");
    }
    if(advanced_plagins_on){
        instance.UsePlugins = false;
        project.SendInfoToLog("Загрузка плагинов отключена");
    }else{
        instance.UsePlugins = true;
        project.SendInfoToLog("Загрузка плагинов включена");
    }
    if(advanced_aud_vid_on){
        instance.UseMedia = false;
        project.SendInfoToLog("Загрузка аудио/видео отключена");
    }else{
        instance.UseMedia = true;
        project.SendInfoToLog("Загрузка аудио/видео включена");
    }
    if(advanced_plag_in_same_window){
        instance.UsePlugins = false;
        project.SendInfoToLog("Загрузка плагинов в том же окне отключена");
    }else{
        instance.UsePlugins = true;
        project.SendInfoToLog("Загрузка плагинов в том же окне включена");
    }
    if(advanced_canel_adv){
        instance.UseAdds = true;
        project.SendInfoToLog("Загрузка рекламы включена");
    }else{
        instance.UseAdds = false;
        project.SendInfoToLog("Загрузка рекламы отключена");
    }
    if(advanced_cancel_ajax){
        instance.IgnoreAjaxRequests = true;
        project.SendInfoToLog("Загрузка ajax включена");
    }else{
        instance.UsePlugins = false;
        project.SendInfoToLog("Загрузка ajax отключена");
    }
    if(advanced_cancel_flash){
        instance.IgnoreFlashRequests = true;
        project.SendInfoToLog("Загрузка flash включена");
    }
    else{
        instance.IgnoreFlashRequests = false;
        project.SendInfoToLog("Загрузка flash отключена");
    }
    if(advanced_webrtc_on){
        // Установка локального IP в WebRTC
        string ipLocal = "192.168.{0}.{1}";
        ipLocal = String.Format(ipLocal, Global.Classes.rnd.Next(2), Global.Classes.rnd.Next(2, 255));
        // 1-й параметр - локальный IPv4, 2-й - IPv6, 3-й - внешний IPv4, 4-й - режим работы WebRTC
        instance.SetWebRTCAdresses(ipLocal, null, null, ZennoLab.InterfacesLibrary.Enums.Browser.WebRTCMode.Emulate);
        project.SendInfoToLog("Включен WebRtc");
    }
    else{
        instance.SetBrowserPreference("media.peerconnection.enabled", false);
        project.SendInfoToLog("Эмуляция WebRTC выключена");
    }
    if(advanced_aud_vid_in_wertc_on){
        instance.SetBrowserPreference("webgl.disabled", true);
        instance.SetBrowserPreference("webgl.disable-extensions", true);
        instance.SetBrowserPreference("webgl.min_capability_mode", true);
    }
    else{
        project.SendInfoToLog("Эмуляция аудио и видео в WebRTC выключена");
    }
//    if(advanced_sis_shrift_on){
//        instance.UsePlugins = false;
//        instance.UseJavaScripts = false;
//            string nameFont = project.Variables["name_font"].Value;
//            CommonCode.Fonts.SetupFont(project, nameFont, @"C:\Fonts\");
//        project.SendInfoToLog("Установлен системный шрифт " + nameFont, true);
//    }
//    else{
//        project.SendInfoToLog("Подстановка системных шрифтов отключена", true);
//    }
    if(advanced_donottrack=="Включить"){
        instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.DoNotTrack, "1");
        project.SendInfoToLog("DoNotTrack включен");
    }       
    if(advanced_donottrack=="Выключить"){
        instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.DoNotTrack, "0");
        project.SendInfoToLog("DoNotTrack выключен");
    }
    if(advanced_donottrack=="Авто"){
        instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.DoNotTrack, "null");
        project.SendInfoToLog("DoNotTrack в автоматическом режиме");
    }
}

    instance.SymbolEmulationDelay = 100;
    instance.FieldEmulationDelay = 500;
    instance.ActiveTab.NavigateTimeout = 60;
    instance.IgnoreAdditionalRequests = true;
    instance.IgnoreFrameRequests = true;
    
    project.SendInfoToLog("Все включенные, продвинутые настройки активированы", true);
Постоянно лезет такая ошибка:
Выполнение действия CSharp OwnCode: Работаем с продвинутыми настройками. Строка не распознана как действительное логическое значение.

Вроде все верно написано. Откуда она может лезть? хоть бы № строки выводился, уже было бы понятнее (
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 868
Благодарностей
1 114
Баллы
113
Добавь больше проверок, тестируй код кусками
 
  • Спасибо
Реакции: Sergodjan и artsmm

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
как правило это при конвертировании данных такие мессаги
код большой, надо кусками ловить. оберни жирный кусок входных параметров в try{}catch{} и в catch вывод в лог поставь. и другие места так же.
поймаешь большой блок, можно сужать место ловли
 
  • Спасибо
Реакции: artsmm и Sergodjan

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
одна из переменных не конвертируется в bool - или пустая или вместо true или false что-то другое.
 

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