• Почему не сохраняются cookies?

    @kelwin27 Автор вопроса
    Виктор Майоров, Благодарю за ответ.
  • Почему не сохраняются cookies?

    @kelwin27 Автор вопроса
    Виктор Майоров, На одном адресе но на разных портах. фронт - localhost:5173
    бэк - 127.0.0.1:8000
  • Почему не сохраняются cookies?

    @kelwin27 Автор вопроса
    Lynn «Кофеман», Это пробовал разные варианты решения "наугад". Прошу прощения за неудачный скрин, сейчас исправлю. Изначально параметр домена стоит None6401d0029da36054158916.png
  • Как правильно обработать данные get запрос?

    @kelwin27 Автор вопроса
    Очень интересное решение с блокированием работы браузера до выполнения кода в хуке. Обязательно попробую.
  • Как правильно обработать данные get запрос?

    @kelwin27 Автор вопроса
    Мне казалось декомпозиция является хорошей практикой для читаемости кода, а нагромождение функций с разным назначением ( в моем случае получение данных, формирование из нужных мне нового объекта с необходимыми полями и затем отрисовка данных на странице) сделает код менее читаемым.
    Я задумывался на вопрос прелоадера, но меня смущает что даже при изменении значения в FilterQuestions() значение в questions не меняется. Расставлял в коде console.log(). Завтра рассмотрю вопрос прелоадера и обязательно отпишусь о результате.
  • Как правильно обработать данные get запрос?

    @kelwin27 Автор вопроса
    Gary_Ihar, Прошу прощения если плохо объясняю суть проблемы, я изучаю React и JS не так долго ( 2 недели ) и могу допускать неточности в терминах. Постараюсь более кратко: Из АПИ получаю данные. Далее в компоненте выбираю нужные мне и формирую из них массив объектов с необходимыми мне полями. Далее передаю данный массив в function Question() При попытке сформировать из массива передаваемых объектов useState элемент с контролируемым состоянием, происходит ошибка. При манипуляциях с кодом мне кажется что ошибка возникает на этапе получения данных. То есть до получения данных передается пустой массив и он ломает формирование страницы.
    Вероятно я что-то не указываю и имеет смысл скинуть ссылку на гитхаб
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    Огромное спасибо! Удивительно что при разборе автоматизации работы с сайтами никто не уделял внимания вопросу работы с iframe, либо я не понял что это была работа с ним, что вероятнее всего. Как я понимаю это вариант нового контекстного окна для работы с которым необходимо на него переключиться? Обязательно уделю данному вопросу пристальное внимание ибо он убил несколько дней моего времени в тщетных поисках... Поскольку это было действительно не сложно, видимо потраченные 1,5 месяца на изучение программирования были не так успешны как я думал ранее, буду пересматривать интенсивность своего обучения, еще раз благодарю за потраченное время!
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    oborowsky, Навожу на него мышку. В этот момент меняется имя 1 из классов(имеет 3 состояния), но привязки в Xpath вроде бы к нему нет, мне так кажется. Более изменений не находил.
    class="Textinput Textinput_size_m Textinput_view_default"
    class="Textinput Textinput_focused Textinput_hovered Textinput_size_m Textinput_view_default"
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    oborowsky, Скобка действительно была лишней. Хоть работало и с ней, но я исправил это замечание. Мне казалось что иначе не будет искать по номеру элемента. Сказывается отсутствие опыта...
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    Проверил любезно приведенный Вами код. Единственное что внес от себя, обернул скрипт с функциями в "try, except" иначе переписывание затруднялось. Как итог Ваш вариант не нажимал на кнопку. Почему жмет мой, не знаю. Возможно Вам будет проще понять мою проблему увидев ее самостоятельно, чем писать код с нуля?
    import os
    import time
    import pickle
    
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    os.environ['PATH'] += r"C:/SeleniumDrivers"
    driver = webdriver.Chrome()
    driver.get("https://telemost.yandex.ru/")
    driver.implicitly_wait(5)
    try:
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@data-test-id='login-button']"))).click()
        username_input = driver.find_element(By.ID,'passp-field-login')
        username_input.send_keys(input("Введите логин: "))
        time.sleep(5)
        username_but = driver.find_element(By.ID, 'passp:sign-in').click()
    
        pass_input = driver.find_element(By.ID, 'passp-field-passwd')
        pass_input.send_keys(input("Введите пароль: "))
        time.sleep(5)
        pass_but = driver.find_element(By.ID, 'passp:sign-in').click()
        time.sleep(10)
    
        '''cookies input'''
        # pickle.dump(driver.get_cookies(), open('cookies', 'wb'))
        # time.sleep(10)
        '''cookies output'''
        # for cookies in pickle.load(open('cookies', 'rb')):
        #     driver.add_cookie(cookies)
        # time.sleep(8)
        # driver.refresh()
    
        WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.XPATH,"(//button[@data-test-id='button'])[2]"))).click()
        driver.refresh()
        time.sleep(10)
    
        # javaScript = "document.getElementsByClassName('Textinput-Control')[1].value = 'Нашел' "
        # driver.execute_script(javaScript)
    
        text = driver.find_element(By.XPATH, '//div[contains(@class, "qa-NameField")]//input')
        print('нашел')
        text.send_keys('нашел')
    
    except Exception as error:
        print(error)
    finally:
        driver.close()
        driver.quit()
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    Я пытаюсь ввести данные в поле формы. На этапе поиска формы, я ее не нахожу кодом на странице, хотя локация элемента по xpath через Dev Tools проходит успешно. Приведенный Вами фрагмент кода как и мой не работает на 3 этапе описанного Вами плана. Именно на 3 этапе мой код ничего не находит и пишет что такого элемента на странице нет. Приведенный мною код показывает что поиском по xpath кнопка находится и нажимается вполне успешно. А поле для ввода текста не находится и выбивает с ошибкой. То есть этап приведенного Вами скрипта даст сбой на этапе
    input_locator = (By.XPATH, '//div[contains(@class, "qa-NameField")]//input')

    и выведет :Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[contains(@class, "qa-NameField")]//input"}. Про обновление страницы, подсмотрел в одном из ютуб примеров. Позволяет исключить возможные проблемы при обновлении страницы после действий пользователя(ввод логина и пароля, переход на другую страницу и т.д.). Это скорее заплатка на этапе отладки чем рабочий элемент.
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    Именно через Dev Tools я и находил локаторы (поиск в поле после нажатия ctrl + F), поскольку своих знаний для правильного написания у меня практически нет.
    WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.XPATH,"(//button[@data-test-id='button'])[2]"))).click()
        driver.refresh()
        time.sleep(10)
    
        # javaScript = "document.getElementsByClassName('Textinput-Control')[1].value = 'Нашел' "
        # driver.execute_script(javaScript)
    
        text = driver.find_element(By.XPATH, '//div[contains(@class, "qa-NameField")]//input')
        print('нашел')
        text.send_keys('нашел')

    После нахождения кнопки и ее нажатия( знаю, не самый элегантный метод, но мне сейчас не до красоты) я оставил обновление экрана и ожидание в надежде, что элемент не успевает загрузиться. Так же пробовал обращаться к искомому элементу через WebDriverWait(driver, 20).until() так же, чтобы убедиться что элемент успевает загрузиться. Поверьте, если бы я мог разобраться сам, я бы не пришел к сообществу с просьбой о помощи. Чтение десятков статей на stackoverflow, где все сводится к банальному ID или лоцируемому Xpath а так же просмотр минимум десятка роликов на ютуб где нет даже намека на мою проблему меня честно говоря напрягла. Я понимаю что вероятно упускаю что-то важное, но сам решить эту проблему просто не в состоянии....
    Хочу поблагодарить Вас за то что уделили время моей проблеме, очень не хочу показаться неблагодарным, поверьте я это очень ценю!
  • Как определить элемент TextInputbox с помощью selenium?

    @kelwin27 Автор вопроса
    Заранее извиняюсь если некорректно составил свой вопрос. К сожалению, моя проблема состоит в том, что мое обращение не находит сам элемент.
    Используя обращение:
    text = driver.find_element(By.XPATH, '//div[contains(@class, "qa-NameField")]//input')
    print('нашел')
    text.send_keys('нашел')

    или
    WebDriverWait(driver, 20).until(
            EC.text_to_be_present_in_element(
                (By.XPATH, '//div[contains(@class, "qa-NameField")]//input'),'Complete!'))

    Его результатом становится:
    Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[contains(@class, "qa-NameField")]//input"}
    При этом принт не срабатывает, т.е. проблема в локации элемента.
    При нахождении кнопок мне удалось решить проблему, кнопка находится и нажимается. хотя явных локаторов вида "ID" или "name" нет. Но мое решение для кнопок, к сожалению, для данного элемента не работает. Подскажите, возможно, необходимо иное обращение к данному элементу?