• Python Selenium как нажать на кнопку "отмена" в окне печати?

    @o5a
    Kayuro, find_elements_by_xpath возвращает список элементов.
    click() это метод конкретного элемента, а не метод списка. Чтобы вызвать click() нужно или использовать функцию для единственного элемента - find_element_by_xpath, или же ту множественную, но выбирать конкретный элемент, например [0].

    Но судя по тому, что
    find_element_by_class_name('cancel-button').click()

    тоже возвращает ошибку, значит такого элемента на открываемой странице просто нет.

    Можете посмотреть, что вообще видит драйвер на открываемой странице - вывести себе driver.page_source
    и проверить, есть ли там искомый тэг с таким классом. Возможно нет логина.
  • Python Selenium как нажать на кнопку "отмена" в окне печати?

    @o5a
    Kayuro, значит, он не находит на странице элемента с таким классом 'cancel-button'
  • Xpath python как взять 2 элемент с похожим классом?

    @o5a
    LordOftheCode, ну конечно будет ошибка. Представьте, у Вас некая функция find ищет строку в тексте. А тут вы ей вместо текста подсовываете список. Разумеется она будет ругаться. Чтобы использовать свою функцию для одиночного элемента, нужно и передавать ей одиночный элемент, обычно это делается перебором списка, думаю это знаете.
    Так и в данном случае, find_elements_by_xpath вернет список найденных элементов. Чтобы продолжать искать в этих элементах, нужно сделать цикл перебора по ним
    for elem in ..find_elements_by_xpath(...):
        for item in elem.find_elements_by_xpath(..):
            ... item.get_attribute(..)


    К тому же элементы xpath можно объединять, если нужно найти вложенные (как в вашем примере - найти определенный <a>который внутри определенного <div>
    find_elements_by_xpath("//div[@class='...']//a[@class='listBlock main PreviewTooltip']")
  • Xpath python как взять 2 элемент с похожим классом?

    @o5a
    LordOftheCode, тогда пишите конкретнее, что еще делаете и почему вдруг нельзя вытащить аттрибут.
  • Как динамически изменять многострочный вывод?

    @o5a
    KitCat12, как уже подсказали в ответе, нужно очищать экран и полностью перерисовывать все строки. За счет этого будет видимость, что какие-то данные обновляются.
  • Код не проходит проверку по времени, как ускорить?

    @o5a
    dethain,
    впрочем ладно это видимо не решаемая тема

    Если у Вас тормозит при реализации через словарь, как подсказали, значит Вы все еще что-то не так сделали. Приведите измененный код, можно будет подсказать.
  • Ошибка sqlite3.IntegrityError: UNIQUE constraint failed: users.user_id, что делать?

    @o5a
    d3m0l, помимо уже указанных проблем, изначальная идея (проверить, что пользователь в базе, если нет - обновить) не работает еще потому, что результат SELECT возвращается в виде списка кортежей (по 1 на каждую строку данных), а не списка самих данных user_id.
    cursor.execute('SELECT user_id FROM users')
    вернет данные в виде [(1,), (2,)...]
    а не просто [1,2,...]
    Соответственно и проверка
    if message.from_user.id in cursor.execute('SELECT user_id FROM users'):

    в таком виде работать не будет, т.к. она получается в виде
    if 1 in [(1,), (2,)...]:
  • Как получить текст кнопки в telebot?

    @o5a
    hey_umbrella, так напрямую и обратиться, в своем callback_query_handler
    @bot.callback_query_handler(func=lambda call:True)
    def callbacks(call):
        if call.data == 'мой указанный город':
  • Как в регулярке задать диапазон и символы?

    @o5a
    DTPlayer, так зачем его парсить регулярками, если это просто json (в котором обычный словарь)
    import json
    s = '{\"data\":\"data01\",\"iv\":\"data12\",\"salt\":\"data23\"}'
    d = json.loads(s)
    print(d)
    # {'data': 'data01', 'iv': 'data12', 'salt': 'data23'}
  • Как в регулярке задать диапазон и символы?

    @o5a
    DTPlayer, экранировать спецсимволы { } ?
    В целом вопрос поставлен некорректно. Если спрашиваете, что не так с регуляркой, то приводите и пример, который хотите ей найти.
  • Пользователь вводит данные, как их разделить по определенному признаку?

    @o5a
    Дмитрий Хакрин,
    Изучаю регулярные выражения

    Можно посоветовать продолжать изучать регулярные выражения. Ваша задача не такая сложная для них. Вы хотите увидеть сразу готовое решение? Хотя бы приведите свои попытки, скажите, что не получилось.
  • Как исправить ошибку TypeError: message_handler() got an unexpected keyword argument 'commands'?

    @o5a
    Shapito229,
    Есть подозрение, что это не реальный код, который запускаете (и который выдает ошибку), а какой-то выдуманный кусок.
    Например, судя по этому куску, который изначально неправильный и не будет работать:
    if __name__ == "name":
    bot.infinity_polling()

    Так что лучше бы привести реальный код, в котором действительно есть ошибка.
  • Почему возникает ошибка "can only join an iterable" при повторном прохождении цикла? И как сравнить имя пользователя с именем ключа словаря?

    @o5a
    Лили Каммерер, так проверьте еще раз свой код, Вы переменную name (которая предполагает хранить имена пользователей) не заполняете вообще. Единственное место с ее заполнением и то закоментировано.
    И лучше не использовать для этого строку. Есть более адекватные структуры для хранения списков данных - список, словарь. В этом случае как раз словарь вполне подходит (с ключом = имя пользователя), тем более что по факту имя пользователя предполагается уникальным.
    А, вижу проверку делаете по
    name.find(polsovatel.name)
    а загружаете данные в словарь dic.
    Так что просто нужно и проверку переделать на этот словарь
    if polsovatel.name in dic
    А для хранения лучше использовать более стандартный формат данных - CSV (данные хранятся построчно с разделителем) или JSON (хранятся в виде словаря/списка). Для обоих форматов у python есть встроенные библиотеки, читать/записывать очень легко.
    Для Вашего случая ближе всего будет простой CSV. Только данные как правило хранят с разделителем , или ;
  • Не могу понять как решить ошибку?

    @o5a
    shadowcorpse, выбор и применение операторов можно сделать так:
    from operator import add, sub, mul, truediv
    import random
    
    # список операторов + - * /
    opers = [add, sub, mul, truediv]
    oper = random.choice(opers)
    d = oper(a,b) # результат операции
  • Почему не двигается объект в pygame?

    @o5a
    Alex_Kuzen, конечно, я про это тоже писал. Что делает эта проверка?
    if hunter_1.x < pos_x_rand:
    сравнивает текущую позицию x объекта hunter с текущим значением переменной pos_x_rand. А эта переменная каждый цикл генерируется, создает точку-цель и в следующем цикле ее забывает, т.к. опять же генерируется заново
    pos_x_rand = random.randint(1, 790)
    Логично же, что каждый цикл курс будет меняться на последнюю сгенерированную точку.
    Поэтому вместо сравнения со значением переменной pos_x_rand нужно сравнивать со значением координаты х - аттрибута объекта Ex. Какого именно - я не знаю, как Вы это по логике игры планировали?

    А чтобы можно было к этим объектам обращаться, нужно их где-то хранить. Например, складывать в список.
    # создаем наш список объектов
    targets = []
    while True:
        ....
        # и после создания добавляем созданный объект к списку целей
        exl = Ex(pos_x_rand, pos_y_rand, 3, 3, color)
        targets.append(exl)

    Тогда можно будет обращаться к любому созданному объекту-цели.
    Например, targets[0].x будет выдавать текущую координату самой первой созданной цели.

    как сделать так, что бы охотник не оставлял след

    Обычно в pygame это делается таким образом, что каждый цикл поле сбрасывается (окрашивается цветом фона)
    win.fill(black)
    и после этого все нужные объекты отрисовываются заново. Те, что изменили координату, соответственно перерисуются в новом месте, так создастся иллюзия, что они передвинулись, и не будет следа.

    Альтернативно можете при движении охотника каждый цикл вместо закрашивания всего экрана закрашивать цветом фона его предыдущую позицию, тогда следа оставаться не будет.
  • Как получить из JSON строки int и float?

    @o5a
    EvaSpence, зависит от того, где сравнение производится. Если это запрос в базе данных (т.е. 'SELECT ... WHERE a = b'), то там будет использоваться тип поля таблицы (если цифровой, то и сравниваться будут как цифры).
    Если же это просто результат курсора запроса из базы данных в питон, то изначально все данные приходят как строка (по крайней мере в sqlite). Соответственно и при сравнении в питоне это будут строки.
    Можно указать параметры соединения, чтобы пытался определять тип передаваемых данных
    sqlite3.connect(database_name, detect_types = sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)

    тогда скорее всего тип будет передаваться правильный (т.е. int для integer в базе и т.п.)
  • Как получить из JSON строки int и float?

    @o5a
    EvaSpence, если конечная цель - записать в БД, то нет смысла назначать типы данных, все равно они будут определяться по типу поля самой таблицы.
  • После логотипа Биоса такой экран,что делать?

    @o5a
    Владимир, стоит вытащить свою видеокарту, чтобы запускалось со встроенной (разъемы соответственно переключить на нее), и так же дойти до экрана установки. Так быстрее станет понятно, в порядке видеокарта или нет. Так же стоит проверить подключение по другому интерфейсу, DVI/HDMI, что доступно.
  • Почему Питон не запоминает значение из списка после выхода из цикла?

    @o5a
    aftnia11, не совсем понятно, что хотели изобразить с циклом.
    Можете свой
    for q_Stream in range(len(FStream[q_Stream])):
    просто заменить на бесконечный цикл
    while True:
    Тогда q_Stream не будет сбрасываться на 0, а продолжит считаться дальше.

    Похоже, что идея была подгружать изменяющийся файл? Так все равно не будет работать, т.к.
    FStream = file.readlines()
    прочитает файл только один раз и все.
  • Как округлить в большую сторону столбец DataFrame?

    @o5a
    pandas основан на numpy, так что там есть свое: pd.np.ceil()
    т.е. будет:
    df['area'].apply(pd.np.ceil)