Как изменить вывод почты Crontab? - PullRequest
0 голосов
/ 30 октября 2019

в данный момент я получаю этот вывод исключения crontab в свою электронную почту:

Traceback (most recent call last):
  File "test.py", line 137, in test
    self.product_to_cart()
  File "test.py", line 18, in product_to_cart
    atc_btn = self.driver.find_element_by_id('product-addtocart-button')
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
    'value': value})['value']
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="product-addtocart-button"]"}
  (Session info: headless chrome=77.0.3865.90)

Возможно ли изменить вывод так, чтобы люди, которые не работают с селеном, знали, что происходиткогда они получат такую ​​почту crontab? Как некоторые более удобочитаемые выходные данные ..

Я уже пытался использовать обычную печать и вызвать исключение (сообщение), но оно не появляется в электронном письме

Примечание: это нео решении самого сообщения об ошибке .. просто визуализация вывода (!)

Спасибо!

1 Ответ

0 голосов
/ 30 октября 2019

Это не «исключение crontab», это исключение Python, которое cron только что передал. Крон просто отправляет вам вывод скрипта. Результатом вашего скрипта является необработанное сообщение об исключении. Перехватите исключение и напечатайте то, что вы хотите, чтобы почта говорила вместо этого.

try:
    do_something_dangerous()
except selenium.common.exceptions.NoSuchElementException as x:
    print("Bad stuff happened!", file=sys.stderr)
...