Как узнать имя исключения в Python , для объекта webdriver, для секции try/except

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

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

Всем здравствовать и болеть ))) Ребят --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(response) 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.WebDriverException: Message: Failed to decode response from marionette

[/I] сам код.
Листинг программы
  1. #!/usr/bin/env python3
  2. import sys
  3. import requests
  4. from selenium.webdriver.common.proxy import * # эта бибилиотека нужна ждя пуска мозилы через порт 8080
  5. from bs4 import BeautifulSoup
  6. from selenium import webdriver
  7. from selenium.common.exceptions import TimeoutException
  8. from selenium.webdriver.support.ui import WebDriverWait
  9. from selenium.webdriver.support import expected_conditions as EC
  10. from browsermobproxy import Server, Client # попробую реализовать схему: вызов скрипта -> firefox->browsermobproxy->burpsuite
  11. class BMP_FF():
  12. """
  13. Класс для работы браузера Firefox через прокси browsermobproxy
  14. для перехвата и анализа Get запросов (перехват Get requests not implemention)
  15. допилить обработку исключения (преждевременного закрытия Firefox)
  16. """
  17. try:
  18. def __init__(self):
  19. """путь прописывать полностью от home до бинарника который скачивается отдельно не через pip install"""
  20. self.bmpproxy = Server(r'//home//sirius//project//python_sir//SBBs_sdo//lib//python3.5//site-packages//browsermob-proxy//bin//browsermob-proxy',{'port':8082})# указываю путь к бинарнику и на каком порту слушать трафик
  21. self.bmpproxy.start() # start browsermobproxy
  22. self.bmp_port = self.bmpproxy.create_proxy() # save № open port browsermobproxy
  23. self.resp = requests.post('http://localhost:8082/proxy',{})# отправляю запрос для получения №порта на котором поднял проксик browsermobproxy
  24. port = self.resp.json()['port']
  25. self.port_ff_net = "localhost :" + str(port)
  26. self.proxy_my_ff = Proxy({
  27. 'proxyType' : ProxyType.MANUAL,
  28. 'httpProxy' : self.port_ff_net,
  29. 'ftpProxy' : self.port_ff_net,
  30. 'sslProxy' : self.port_ff_net,
  31. 'socksProxy': self.port_ff_net,
  32. 'noProxy' : ''
  33. })
  34. self.profile = webdriver.FirefoxProfile()
  35. self.profile.set_preference("network.proxy.type" , 1)
  36. self.profile.set_preference("network.proxy.http" , "localhost")
  37. self.profile.set_preference("network.proxy.http_port" , self.bmp_port)
  38. self.profile.set_proxy(self.proxy_my_ff)
  39. """метод вызова браузера с заданными настройками прокси в
  40. методе __init__ и переход на заданный адрес"""
  41. def start_firefox_url(self,site_url): #site_url адрес нужного сайта
  42. self.url = site_url
  43. self.driver = webdriver.Firefox(self.profile)
  44. self.driver.get(self.url)
  45. sys.stdout.write('Открылся порт = ' + str(self.resp.json()['port']) + '\n' )
  46. """метод отстановки browsermobproxy"""
  47. def bmp_stop(self):
  48. self.bmpproxy.stop()
  49. except Exception as msg:
  50. sys.stdout.write(msg[2])
  51. sys.stdout.write('Что то пошло не так в объекте BMP_FF' + '\n' )

Решение задачи: «Как узнать имя исключения в Python , для объекта webdriver, для секции try/except»

textual
Листинг программы
  1. try:
  2.     f = open('qer4t4t')
  3. # перехватываем все исключения, входящие в класс OSError, в том числе ошибки открытия файлов
  4. except OSError as err:
  5.     print(err)
  6.     sys.exit(int(err.errno)) # завершаем приложение если не указываем дальнейшую логику
  7. else:
  8.     print(f.read())
  9.     f.close()
  10.  
  11.  
  12. try:
  13.     f = open('qer4t4t')
  14. # перехватываем только исключение отсутствия файла - FileNotFoundError
  15. except FileNotFoundError as err:
  16.     print(err)
  17.     sys.exit(int(err.errno)) # завершаем приложение если не указываем дальнейшую логику
  18. else:
  19.     print(f.read())
  20.     f.close()
  21.  
  22.  
  23. try:
  24.     f = open('qer4t4t')
  25.     print(f.read())
  26. # перехватываем все подряд (вот такие мы умные :-)), но хорошо что хоть не KeyboardInterrupt или SystemExit
  27. except Exception as err:
  28.     print(err)
  29.     sys.exit(int(err.errno))  
  30. finally:
  31.     f.close()

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


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

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

12   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы