Ответы пользователя по тегу Python
  • Почему UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 100: invalid continuation byte при install cx_Oracle?

    @AlexMt
    Automation Q&A Lead
    К сожалению, никто из здесь присутствующих (скорее всего) не писал setup.py скрипт для установки данной библиотеки, поэтому ( опять же скорее всего ) вам лучше обратиться на github/oracle/python-cx_Oracle к владельцам репозитория и создать новый issue с описанием этой проблемы

    Или же попробовать скачать исходники, разобраться в том как устроен установщик, и поправить его самостоятельно :)
    Ответ написан
    1 комментарий
  • Нужно ли устанавливать что-то для SQLAlchemy?

    @AlexMt
    Automation Q&A Lead
    SQLAlchemy, как и многие другие ORM работают с драйверами - библиотеками, предоставляющее схожее по сигнатурам API для доступа к БД. Подробнее об этом вы можете почитать в этой замечательной статье с картинками и примерами.

    Ответ на вопрос: ДА, нужно, но бывает что и НЕТ, не нужно. И уточнение: в зависимости от того, что конкретно за backend будет в вашем случае. К примеру: Postgres,
    в этом случае создание "движка" будет происходить с помощью строки объявления диалекта+драйвера,
    а используемый модуль движка будет psycopg2. Это означает, что вам надо сделать
    pip install psycopg2
    прежде чем начинать работу с ORM:
    engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')


    В случае с sqlite, например, по-умолчанию будет использована стандартная библиотека sqlite3 и дополнительно ничего делать не нужно. Просто объявить:
    engine = create_engine('sqlite://')
    Ответ написан
    Комментировать
  • Как послать данные в форму JS и получить ответ на AJAX при помощи Python + Selenium?

    @AlexMt
    Automation Q&A Lead
    То что Вы делаете называется submit, но приходит обратно не document, а AJAX-ответ, ведь страница не перезагружается, как я понимаю?
    Когда Вы пытаетесь отправить данные через браузер, при этом управляя им через selenium, то Вы можете только работать с UI (пользовательский слой), а не с текстовыми данными (ну, не совсем так, но в целом - да) которые прилетают к Вам от сервера. Selenium не позволяет видеть статусы ответов на все запросы кроме первого (главного - первого запроса к документу). Но при этом, вы всё равно не сможете увидеть ответный json/xml/plain-text/whatever

    Один из вариантов - ставить прокси на пути селениум-браузер и ходить через него, потом собирая из этого прокси ответы, разбивать их/отсекать ненужные и используя json.loads() получать dict в котором и будут находится данные для валидации

    Иными словами, "отправить данные сайту" как Вы сказали, используя только selenium + браузер кроме как нажатием на кнопку в форме - нельзя.

    Как один из вариантов, использовать HTTP-библиотеку для отправки запросов http. Например, очень хороший вариант - requests
    Ответ написан
    8 комментариев