|
14 / 10 / 5
Регистрация: 07.07.2012
Сообщений: 171
|
||||||
Как узнать имя исключения в Python , для объекта webdriver, для секции try/except07.08.2017, 02:27. Показов 14546. Ответов 15
Метки нет (Все метки)
Всем здравствовать и болеть )))
Ребят --1-- как узнать конкретное имя исключения для объекта? --2-- как пустить трафик от прокси №1 через прокси №2 в моем случае от проксик №1 - browsermobproxy , через проксик №2 - burpsuite само исключение хочу поставить на "событие" - firefox.close(), когда скрипт запускаю , скрипт запускает браузер firefox и если браузер сразу закрыть то вываливается Traceback : [I]Traceback (most recent call last): File "ffstart.py", line 126, in <module> A.start_firefox_url('http://www.google.ru') File "ffstart.py", line 89, in start_firefox_url self.driver.get(self.url) File "/home/sirius/project/python_sir/SBBs_sdo/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 268, in get self.execute(Command.GET, {'url': url}) File "/home/sirius/project/python_sir/SBBs_sdo/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute self.error_handler.check_response(respon se) File "/home/sirius/project/python_sir/SBBs_sdo/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverExce ption: Message: Failed to decode response from marionette[/I] сам код.
0
|
||||||
| 07.08.2017, 02:27 | |
|
Ответы с готовыми решениями:
15
Selenium webdriver как узнать имя фрейма
Исключения и Имя объекта |
|
Просто Лис
|
|||||||||||
| 07.08.2017, 06:43 | |||||||||||
И ещё, оборачивайте блоками try-except методы, а не вообще всё. Понимаю, питон гибкий, всё стерпит...
1
|
|||||||||||
|
14 / 10 / 5
Регистрация: 07.07.2012
Сообщений: 171
|
|
| 08.08.2017, 02:34 [ТС] | |
|
Спасибо Рыжий Лис за оба совета!!!
0
|
|
|
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
|
||
| 08.08.2017, 10:12 | ||
|
Вот я его и беру в обработку. Другой путь - ковырять документацию заранее. Мне этот путь не нравится. И даже если я знаю, какое исключение там будет выброшено, я все равно предпочитаю увидеть это своими глазами, а не строить догадки..
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 08.08.2017, 11:27 | |
|
Kifsif, некоторых исключений при разработке ты можешь не поймать, а на проде все рухнет. Выводы делать не буду и так все очевидно.
0
|
|
|
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
|
||
| 08.08.2017, 11:50 | ||
|
Во-вторых - да, я хочу, при разработке видеть, как оно упало. Потом принять к сведению и написать обработчик. Мне так нравится. И не только мне. Вон TDD есть - им тоже нравится посмотреть сперва, как оно упало, а потом двигаться дальше. Какие выводы можно сделать из этого - вот тут я вообще не понял, о чем комментарий. Практичный способ. В чем его порок? Это скриптовый язык - запустил, проверил. Видишь возможное исключение, дал ему сначала взорваться, потом обработал. На компилируемых могут быть другие стратегии, я не знаю. Компиляция долго происходить может. Я не программировал профессионально на компилируемых, а студенческие работы не в счет.
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 08.08.2017, 13:04 | |
|
0
|
|
|
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
|
||
| 08.08.2017, 13:47 | ||
|
В разработке мы оперируем срочной информацией. Вот оно упало - посмотрели, организовали обработчик исключений. А логи - это на случай, если когда-то потом нам вдруг понадобится что-то. Так вот, при разработке-то оно нам может понадобиться только сейчас. И более никогда - потому что мы проехали и уже не хотим вспоминать, что мы кодили даже час назад. В общем, что-то как-то - я уже утратил нить беседы. Все что ниже - это не троллинг, а попытка понять. Причина: alex925, я очень ценю Ваши сообщения. Если бы кто другой написал, я бы мимо ушей пропустил вообще. Но т.к. это написали Вы, я пытаюсь разобраться. Но мои попытки напоминают натягивание совы на глобус. Но давайте все-таки попробуем разобраться, как я Вас понял. Вот мне в бытность студентом репетитор по Java говорил - чтобы быть продуктивным, кодишь до обеда, компилируешься, кодишь до вечера, компилируешься. Если будешь постоянно компилироваться, то времени на программирование не останется. Но у него-то был компилируемый язык. Т.е. - да, он кодил до обеда, и только потом ловил свои ошибки. А еще давным давно мужики кодили на бумажке. Потом отдавали оператору. Оператор вбивал на перфокарты. Потом программист ждал освобождения машинного времени. Его перфокарты прогоняли. Он приходил. А там написано: "Ошибка компиляции". И он уходил думать. И думал опять на бумажке, опять наборщик и т.п. Но это случаи, когда люди программируют в своих реалиях. А на Питоне реалии таковы, что можно быстро запуститься, дать упасть в ошибку, написать обработчик, опять запуститься и посмотреть, что ошибка обработана корректно. Давайте все-таки определимся, почему Вы не хотите дать упасть в ошибку? Из этиж же самых соображений, что продуктивность программиста снизится из-за постоянных запусков? Но как она может снизиться. Это же не компиляция. А на узнавание исключения в документации Вы все равно время потратите. Польза лога может быть только в том случае, если вы кодите несколько часов без единого запуска. Потом запустился - без единой ошибки все прошло, все тесты отработали. Запустился - прощелкал на сайте кнопочики вручную - весь функционал работает без единой ошибки. Потому что если где необработанное исключение - уже не до лога будет. И только потом заглянул в лог и узнал, какие исключения возникали. Но анализ лога не будет простым. В отличие от исключения, которое застрелило программу. И какая должна быть квалификация у программиста для такого. В общем, был бы признателен за более подробный комментарий: почему вы против того, чтобы давать упасть, а только потом обрабатывать исключение.
0
|
||
|
|
||||||
| 08.08.2017, 14:55 | ||||||
|
Самый глупый способ поймать исключение, который я когда-либо видел:
0
|
||||||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||
| 08.08.2017, 19:06 | ||
|
Ты просто представь если бы сбербанк-онлайн (или любая другая крупная система) падала по поводу и без, просто потому, что программист поленился написать нормальный код и не обработал пару-другую исключений. Я думаю ты таким софтом не стал бы пользоваться. Отсюда делай выводы...
0
|
||
|
|
||||
| 08.08.2017, 19:21 | ||||
|
И совершенно верно что,
0
|
||||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|||
| 08.08.2017, 21:22 | |||
|
0
|
|||
|
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
|
||
| 08.08.2017, 22:28 | ||
|
Garry Galler, я говорил про среду разработки, а вы говорите про продуктивную. В продуктивной среде логи ведутся - это понятно.
Но топикстартер спрашивал, как ему в момент разработки узнать, какое нужно обрабатывать исключение. Речь вообще про webdriver шла. alex925, зачем лог смотреть в момент разработки? Мы говорим только о разработке. Как тут лог может помочь?
1
|
||
|
14 / 10 / 5
Регистрация: 07.07.2012
Сообщений: 171
|
||||||||||||||||
| 09.08.2017, 02:07 [ТС] | ||||||||||||||||
|
Ребят а как правильнее будет использовать блоки try/except , поделитесь своим опытом!!! Представляю вашему вниманию два варианта обработки исключений один в классе BMP_FF() , другой вариант за классом (подтолкнул комментарий мистера Garry Galler
):--1--
или --2--
0
|
||||||||||||||||
|
|
|||||||
| 09.08.2017, 15:39 | |||||||
Сообщение было отмечено Orakul как решение
Решениеtry ... except нужно ставить только там и исключительно там, где 1) ожидается наличие исключения(причем определенного типа и тип нужно знать), которое вы как разработчик 2) не можете предотвратить ну прям совсем никак (отключился интернет, нет response от сервера, отсутствует файл для чтения и т.д. )и 3) заворачивать в него исключительно ту строчку\строчки которые и могут вызвать это исключение. И не пихать в один блок перехвата сразу до кучи все прочее. Иначе получится так, что одна строчка может вызвать одно исключение, другая другое, а перехватываем мы вообще третье (либо вообще не имеющее отношение к данному блоку - KeyboardInterrupt или SystemExit, почитайте про классы исключений). Блок try except без указания типа исключения - вот это действительно некошерно. Как минимум, если вы не уверены в названии типа нужного исключения, указывайте хотя бы общий класс исключения Exception.
А просто выводить в stdout сообщение об ошибке и ничего не делать - некошерно вдвойне. Либо закрывайте приложение (а как оно будет работать если вы просто в stdout сольете "чувак, все плохо" - если данные не были получены корректно; оно все равно упадет там, где эти данные понадобятся коду), либо дайте скрипту новую логику работу. Это и называется обработкой исключений. Добавлено через 13 минут P.S.Обработка исключений в Python И с блоком else в try except нужно быть осторожным: употреблять только если понимаете зачем он нужен.
1
|
|||||||
|
14 / 10 / 5
Регистрация: 07.07.2012
Сообщений: 171
|
|
| 09.08.2017, 16:56 [ТС] | |
|
Garry Galler Благодарю за столь развернутый ответ,узнал больше чем ожидал , а конкретно про sys.exit(int(err.erno)).А то я думаю почему после остановки объекта browsermobproxy - "self.bmp_stop()" - порты остаются занянятыми.
0
|
|
| 09.08.2017, 16:56 | |
|
Помогаю со студенческими работами здесь
16
Как узнать имя внедренного объекта? Как узнать имя конструктора объекта Как узнать имя экземпляра объекта?
Как узнать имя объекта, используемого в другом классе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|