我想删除youtube的稍后观看视频。但是我的代码不起作用。

<button class="yt-uix-button yt-uix-button-size-default yt-uix-button-default yt-uix-button-empty yt-uix-button-has-icon no-icon-markup pl-video-edit-remove yt-uix-tooltip" type="button" onclick=";return false;" title="Remove"></button>

我的代码是这个。
_sDriver.get('https://www.youtube.com/playlist?list=WL')
_sDriver.find_element_by_class_name('pl-video-edit-remove').click()

异常(exception)是这个。
>>> _sDriver.find_element_by_class_name('pl-video-edit-remove')
    <selenium.webdriver.remote.webelement.WebElement (session="283d423c-5ff7-478f-89
    b9-002499413126", element="{e00dbb1e-e0ca-4f79-8652-23c955b464e7}")>
>>> _sDriver.find_element_by_class_name('pl-video-edit-remove').click()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",
    line 72, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 461, in _execute
    return self._parent.execute(command, params)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 236, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py"
, line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: Element is not c
urrently visible and so may not be interacted with
Stacktrace:
    at fxdriver.preconditions.visible (file:///c:/users/admini~1/appdata/local/t
emp/tmppqz9zq/extensions/[email protected]/components/command-processor.js
:10092)
    at DelayedCommand.prototype.checkPreconditions_ (file:///c:/users/admini~1/a
ppdata/local/temp/tmppqz9zq/extensions/[email protected]/components/comman
d-processor.js:12644)
    at DelayedCommand.prototype.executeInternal_/h (file:///c:/users/admini~1/ap
pdata/local/temp/tmppqz9zq/extensions/[email protected]/components/command
-processor.js:12661)
    at DelayedCommand.prototype.executeInternal_ (file:///c:/users/admini~1/appd
ata/local/temp/tmppqz9zq/extensions/[email protected]/components/command-p
rocessor.js:12666)
    at DelayedCommand.prototype.execute/< (file:///c:/users/admini~1/appdata/loc
al/temp/tmppqz9zq/extensions/[email protected]/components/command-processo
r.js:12608)

我不知道该怎么办。
我需要你的帮助。
谢谢。

最佳答案

您尝试单击的元素通常不可见。仅当将鼠标悬停在其上时,它才可见。因此,您可以在单击之前触发一个鼠标悬停事件,然后尝试是否起作用。

另一个解决方案是您可以尝试执行JavaScript。

    driver.execute_script("document.getElementsByClassName('pl-video-edit-remove')[0].click()")

该脚本在我的工作结束。

您可能需要在执行脚本之前添加一些等待时间,以便正确加载页面。

09-11 19:26