Ответы пользователя по тегу Selenium
  • Python selenium как нажать на элемент списка по значению input?

    @Sovetnikov
    технический директор pulsprodaj.ru
    Что-то вроде этого
    ec = EC.text_to_be_present_in_element((By.CSS_SELECTOR, 'input'), text='Бизнес')
    element = driver(ec)
    Ответ написан
  • Почему не запускается selenium (python) на сервере?

    @Sovetnikov
    технический директор pulsprodaj.ru
    Чтобы на Linux поставить geckodriver сделайте:
    pip install geckodriver

    И вы перепутали назначение executable_path, это на самом деле путь к выполняемому файлу браузера, а geckodriver.exe это только драйвер для Selenium, и это видимо версия для Windows.

    Возьмите готовый Firefox с Selenium https://github.com/SeleniumHQ/docker-selenium
    Если что подскажу как его кушать
    Ответ написан
  • Как можно сделать запись аудио из вкладки браузера, используя Python + Selenium?

    @Sovetnikov
    технический директор pulsprodaj.ru
    1. Записывайте звук с системного устройства воспроизведения звуков. Думаю что для Linux и для Windows есть решения с виртуальными звуковыми устройствами, которые запишут вам всё в файл.
    2. Т.к. Selenium запускает обычный Chrome, то возьмите любое расширение для Chrome которое умеет записывать аудио звучащее в закладке, оно запишет то что надо. Единственное затруднение это запустить запись и остановить ... я если честно не пробовал взаимодействовать с расширениями через Selenium, скорее всего можно автоматизировать клики на контролы управления расширения. А может быть есть расширения которые записывают всё автоматически.
    И ещё, т.к. любое расширение Chrome это JS, то думаю можно ими всеми (расширениями) управлять через execute_script, но надо разобраться с API конкретного расширения.
    3. Можете сделать свою записывалку звука закладок Chrome ... в Chrome вообще такая возможность уже встроена https://developers.google.com/web/updates/2016/01/... (если она вошла в стабильную ветку конечно, что-то не понял с ходу). Но в крайнем случае можете взять код любого расширения и посмотреть как оно работает, но тут же и п.2 может быть будет проще сделать.

    Как установить расширение Chrome при запуске из Selenium могу подсказать.
    Ответ написан
    5 комментариев
  • Почему Selenium не может найти элемент на странице?

    @Sovetnikov
    технический директор pulsprodaj.ru
    Обновите chromedriver "pip install --upgrade chromedriver_installer", у меня тоже не работало в начале.
    Только нестабильно нажатие на "Войти" происходит, иногда "not clickable" выскакивает, не разбирался с этим.
    Как reCAPTCHA решать подсказать? :)

    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
    
    driver = webdriver.Chrome()
    driver.get('http://www.seosprint.net/')
    
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="mnu302"]'))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="content"]/div/form/input'))).click()
    Ответ написан
    1 комментарий
  • Как перетащить ползунок громкости при помощи Selenium + Python?

    @Sovetnikov
    технический директор pulsprodaj.ru
    import time
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    
    driver = webdriver.Chrome()
    driver.get('https://salsabeatmachine.org/')
    
    move = ActionChains(driver)
    # Ползунок BPM
    thumb = driver.find_element_by_class_name('mat-slider-thumb')
    
    # Открываем ползунок громкости пиано
    driver.find_element_by_xpath('/html/body/bm-root/div[2]/mat-card[2]/div[4]/bm-instrument-tile/div/div[2]/button[2]/span/mat-icon').click()
    # Сам ползунок громкости
    piano_thumb = driver.find_element_by_xpath('/html/body/bm-root/div[2]/mat-card[2]/div[4]/bm-instrument-tile/mat-slider/div/div[3]/div[2]')
    
    # Пускаем музыку
    driver.find_element_by_class_name('mat-button').click()
    time.sleep(2)
    # Выключаем пианино и делаем такт быстрее
    move.click_and_hold(thumb).move_by_offset(10, 0).release().perform()
    move.click_and_hold(piano_thumb).move_by_offset(-200, 0).release().perform()
    time.sleep(4)
    # Ещё чуть быстрее
    move.click_and_hold(thumb).move_by_offset(20, 0).release().perform()
    time.sleep(4)
    driver.quit()
    Ответ написан
    7 комментариев