Как создать плейлист с селеном Python - PullRequest
0 голосов
/ 12 февраля 2019

Я создаю сценарий для создания плейлиста YouTube с селеном, но я застрял здесь, я перепробовал много способов, но все они не работают!Кто-нибудь может мне помочь?спасибо

<input type="text" class="Mf-jm-Qc-qb d-Rb" aria-label="Search terms" style="width: 325px;">

Я пытался:

1

driver.find_element_by_xpath("//input[@class='Mf-jm-Qc-qb d-Rb']").send_keys("https://www.youtube.com/watch?v=NliYy7iqh-U")

2

driver.find_element_by_xpath("//input[@type='text']").send_keys("https://www.youtube.com/watch?v=NliYy7iqh-U")

3

driver.find_element_by_css_selector(".Mf-jm-Qc-qb").send_keys("https://www.youtube.com/watch?v=NliYy7iqh-U")

4

driver.find_element_by_class_name("Mf-jm-Qc-qb d-Rb").send_keys("https://www.youtube.com/watch?v=NliYy7iqh-U")

1 Ответ

0 голосов
/ 12 февраля 2019

Элемент выглядит как динамический элемент, поэтому вам нужно WebDriverWait для требуемого elementToBeClickable , и вы можете использовать любое из следующих решений:

  • Использование CSS_SELECTOR:

    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[aria-label='Search terms'][type='text']"))).send_keys("https://www.youtube.com/watch?v=NliYy7iqh-U")
    
  • Использование XPATH:

    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@aria-label='Search terms' and @type='text']"))).send_keys("https://www.youtube.com/watch?v=NliYy7iqh-U")
    
  • Примечание : Вы должны добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
...