Python 从元素中刮取文本时出现问题

Python 从元素中刮取文本时出现问题,python,selenium,Python,Selenium,我想提取yt上一段视频的标题 这是我想出的代码: from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC def get_ti

我想提取yt上一段视频的标题

这是我想出的代码:

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


def get_title():
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '/html/head/title')))
    element = driver.find_element_by_xpath('/html/head/title').text
    return str(element)

def start(word):
    driver.get('https://www.youtube.com/results?search_query='+ word)
    driver.find_element_by_xpath('/html/body/ytd-app/div/ytd-page-manager/ytd-search/div[1]/ytd-two-column-search-results-renderer/div/ytd-section-list-renderer/div[2]/ytd-item-section-renderer/div[3]/ytd-video-renderer[1]/div[1]/ytd-thumbnail/a').click()

word = input()
start(word)
title = get_title()
print(title)
但我只收到一条空白的文字。。。 有人能帮帮我吗,泰

def get_title():
    element=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '/html/head/title'))).get_attribute('textContent')
    return str(element)

这将是对代码的简单修复,以获得一个不可见的元素。但是您应该使用driver.title来获取标题值。

当您使用搜索加载youtube时,标题将作为youtube搜索文本出现,几秒钟后youtube将播放第一个视频。因此,标题在几秒钟内改变

试试这个:

def get_title():
    time.sleep(5)
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '/html/head/title'))) 
    return driver.find_element_by_xpath('/html/head/title').get_attribute("innerHTML")

它只是一直在等待,我想它找不到元素您使用了什么值作为输入。我现在从我的值中获取了值,有时单击不起作用,所以切换到等待。