selenium python css选择器可以';找不到元素

selenium python css选择器可以';找不到元素,python,python-3.x,selenium,selenium-webdriver,selenium-chromedriver,Python,Python 3.x,Selenium,Selenium Webdriver,Selenium Chromedriver,返回 from selenium import webdriver from time import sleep driver = webdriver.Chrome() video = "YzmI5F_Yu1o" driver.execute_script("window.open('about:blank');") driver.switch_to_window(driver.window_handles[1]) driver.get("https://www.youtube.com/v/"

返回

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
video = "YzmI5F_Yu1o"

driver.execute_script("window.open('about:blank');")
driver.switch_to_window(driver.window_handles[1])
driver.get("https://www.youtube.com/v/" + video)
title = driver.find_element_by_css_selector('.ytp-title-link.yt-uix-sessionlink')
回溯(最近一次呼叫最后一次):
文件“C:\Users\Gebruiker\Documents\playlist.py”,第36行,在
添加“YzmI5F”和“Yu1o”)
文件“C:\Users\Gebruiker\Documents\playlist.py”,第33行,在add\u yt中
title=driver.find_element_by_css_选择器('.ytp title link.yt uix sessionlink'))
文件“C:\Users\Gebruiker\AppData\Local\Programs\Python\36-32\lib\site packages\selenium\webdriver\remote\webdriver.py”,第498行,按css选择器查找元素
返回self.find_元素(by=by.CSS_选择器,value=CSS_选择器)
文件“C:\Users\Gebruiker\AppData\Local\Programs\Python36-32\lib\site packages\selenium\webdriver\remote\webdriver.py”,第832行,位于find\u元素中
'value':value})['value']
文件“C:\Users\Gebruiker\AppData\Local\Programs\Python36-32\lib\site packages\selenium\webdriver\remote\webdriver.py”,第297行,在execute中
self.error\u handler.check\u响应(响应)
文件“C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第194行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:.ytp title link.yt uix sessionlink”}
(会话信息:chrome=60.0.3112.101)
(驱动程序信息:chromedriver=2.31.488763(092de99f48a300323ecf8c2a4e2e7cab51de5ba8),平台=Windows NT 6.1.7601 SP1 x8664)
基本上,它说css选择器.ytp-title-link.yt-uix-sessionlink中没有任何元素,尽管显然有

我试图返回的元素


尝试切换到
嵌入
元素,就像
iframe
一样,并获取所需的文本:

Traceback (most recent call last):
  File "C:\Users\Gebruiker\Documents\playlist.py", line 36, in <module>
    add_yt("YzmI5F_Yu1o")
  File "C:\Users\Gebruiker\Documents\playlist.py", line 33, in add_yt
    title = driver.find_element_by_css_selector('.ytp-title-link.yt-uix-sessionlink')
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 498, in find_element_by_css_selector
    return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 832, in find_element
    'value': value})['value']
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 297, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".ytp-title-link.yt-uix-sessionlink"}
  (Session info: chrome=60.0.3112.101)
  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.1.7601 SP1 x86_64)

尝试切换到
embed
元素,就像切换到
iframe
一样,并获取所需的文本:

Traceback (most recent call last):
  File "C:\Users\Gebruiker\Documents\playlist.py", line 36, in <module>
    add_yt("YzmI5F_Yu1o")
  File "C:\Users\Gebruiker\Documents\playlist.py", line 33, in add_yt
    title = driver.find_element_by_css_selector('.ytp-title-link.yt-uix-sessionlink')
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 498, in find_element_by_css_selector
    return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 832, in find_element
    'value': value})['value']
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 297, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".ytp-title-link.yt-uix-sessionlink"}
  (Session info: chrome=60.0.3112.101)
  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.1.7601 SP1 x86_64)


你能添加你的HTML代码片段吗?现在alsoI会这样做:)访问链接是直接下载文件。你到底想做什么?您的手动步骤是什么?它不会直接为我下载文件(请记住,我使用的是chromedriver),它会在视频暂停时显示视频。我正在尝试检索视频标题这将打开一个全屏嵌入视频,没有html,只有嵌入标记,因此没有CSS元素,它应该会出错。您可以添加html代码片段吗?alsoI现在会这样做:)访问链接直接下载文件。你到底想做什么?您的手动步骤是什么?它不会直接为我下载文件(请记住,我使用的是chromedriver),它会在视频暂停时显示视频。我正在尝试检索视频标题。这将打开一个全屏嵌入视频,没有html,只有嵌入标记,因此没有CSS元素,它应该会出错。虽然这在技术上是可行的,但它更像是一个问题的解决方案。@Andersson-如何知道帧名称是//嵌入?@ShubhamJain,它不是iframe名称,但是标签name@Andersson-因此,我们也需要每次切换到嵌入标签,以切换控件(如帧)。如果是,是否有更多的标签需要此类开关进一步操作。如果可能的话,你能分享任何参考链接,从那里我可以读到it@ShubhamJain,在这种情况下,
embed
具有子
#文档
,因此可以用与
iframe
相同的方式处理它。我不认为还有其他类似的元素应该以同样的方式处理。。。也许
object
也可以,但我不确定这在技术上是否可行,它更像是一个解决问题的绷带。@Andersson-如何知道帧名是//嵌入?@ShubhamJain,它不是一个iframe名称,而是一个标签name@Andersson-因此,我们也需要每次切换到嵌入标签,以切换控件(如帧)。如果是,是否有更多的标签需要此类开关进一步操作。如果可能的话,你能分享任何参考链接,从那里我可以读到it@ShubhamJain,在这种情况下,
embed
具有子
#文档
,因此可以用与
iframe
相同的方式处理它。我不认为还有其他类似的元素应该以同样的方式处理。。。也可能是
对象
,但我不确定