如何删除youtube以后观看selenium中的视频?

时间:2016-10-18 09:52:53

标签: python selenium youtube

我想删除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()

例外就是这个。

>>> _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/fxdriver@googlecode.com/components/command-processor.js
:10092)
    at DelayedCommand.prototype.checkPreconditions_ (file:///c:/users/admini~1/a
ppdata/local/temp/tmppqz9zq/extensions/fxdriver@googlecode.com/components/comman
d-processor.js:12644)
    at DelayedCommand.prototype.executeInternal_/h (file:///c:/users/admini~1/ap
pdata/local/temp/tmppqz9zq/extensions/fxdriver@googlecode.com/components/command
-processor.js:12661)
    at DelayedCommand.prototype.executeInternal_ (file:///c:/users/admini~1/appd
ata/local/temp/tmppqz9zq/extensions/fxdriver@googlecode.com/components/command-p
rocessor.js:12666)
    at DelayedCommand.prototype.execute/< (file:///c:/users/admini~1/appdata/loc
al/temp/tmppqz9zq/extensions/fxdriver@googlecode.com/components/command-processo
r.js:12608)

我不知道我能为此做些什么。 我需要你的帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

您尝试点击的元素通常不可见。只有将鼠标悬停在鼠标上时才能看到它。因此,要么在点击之前触发鼠标悬停事件,请尝试它是否有效。

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

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

脚本正在我的工作中。

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