когда я ввожу имя видео во входную переменную, функция vidplayer () не ищет его, а воспроизводит случайное видео на YouTube - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь создать графический интерфейс, в котором я могу ввести название видео, и как только я нажму на кнопку, функция селен (vidplayer) будет искать видео на YouTube и воспроизводить первый результат. стр. Все работает хорошо, за исключением того, что когда я нажимаю на кнопку, функция селена воспроизводит первое видео на моей странице HOMEEPAGE вместо того, чтобы искать то, которое я выбрал ранее



    from selenium import webdriver
    from tkinter import *
    root=Tk()
    root.title('Youtube Video Player')
    text=Label(root,text="In order to save time and avoid procrastination.\nEnter the name of the video 
    you have in mind,and by the power of the gods it will play")
    text.pack()
    input=Entry()
    input.pack()
    a=str(input.get())
    #playing the video with the 'a' variable title on youtube
    def vidplayer():
        browser=webdriver.Chrome('C:\\Users\\lenovo\\Downloads\\chromedriver')
        browser.get('https://www.youtube.com/results?search_query='+a)
        video=browser.find_element_by_id('video-title')
        video.click()
    button=Button(text="Play Video", command=vidplayer)
    button.pack()
    root.mainloop()

1 Ответ

0 голосов
/ 23 октября 2019

Проблема в том, что вы вызываете a.get() примерно через миллисекунду после создания виджета ввода, задолго до того, как у пользователя появится возможность ввести что-либо.

Исправление простое: получите значение, когда вына самом деле это нужно, а не раньше:

def vidplayer():
    query = input.get()
    url = 'https://www.youtube.com/results?search_query='+query
    browser=webdriver.Chrome('C:\\Users\\lenovo\\Downloads\\chromedriver')
    browser.get(url)
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...