2016-10-18 23 views
0

我想刪除youtube的觀看更晚的視頻。但我的代碼不起作用。如何在selenium中刪除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/[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) 

我不知道該怎麼辦。 我需要你的幫助。 謝謝。

+0

你有沒有例外? – Andersson

+1

它在我的工作。如果你有任何異常,然後分享。 – kb4shubham

+0

我添加了異常 – User8392

回答

0

您嘗試點擊的元素通常不可見。只有當您將鼠標懸停在上面時纔會顯示。因此,無論是在點擊之前觸發鼠標懸停事件,並嘗試它是否有效。

另一種解決方案是您可以嘗試執行JavaScript。

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

腳本在我的結尾工作。

您可能希望在執行腳本之前添加一些等待,以便正確加載頁面。

+0

謝謝。我解決了這個問題! – User8392

相關問題