2014-02-08 45 views
1

我試圖通過在打開的瀏覽器上執行JavaScript來刪除類「RemoveByMe」中的所有元素。我以前自己創建了這些元素。使用JavaScript從打開的Web瀏覽器中刪除元素

我從Python中調用該JavaScript:Selenium控制瀏覽器,並將JavaScript發送到打開的瀏覽器。但我認爲這個問題依賴於JavaScript方面,下一行的原因。

執行每個腳本的Python代碼是:

Browser.execute_script("script here") 

到目前爲止,我已經嘗試下面的JavaScript代碼:

$('.RemoveByMe').remove(); 

這一個提供了以下錯誤信息:

#WebDriverException: Message: u'$ is not defined' ; Stacktrace: 
    at anonymous 

這個錯誤似乎來自python方面,所以我測試了更多的javascript代碼:

var DocElements = document.getElementsByTagName('RemoveByMe');for(var i = 0; i < DocElements.length; i++){DocElements[i].parentNode.removeChild(DocElements[0]);} 

這一個沒有拋出任何錯誤(確認python方面工作),但仍然不刪除元素。 (javascript無法刪除它們)

所有測試的JavaScript代碼都可以在某些網站上運行,但它並不是in some others。 這讓我覺得問題在於網站,阻止javascript去除元素。 (雖然我可以成功添加它們)

我怎麼能跳過這種預防?

回答

1

第一個顯然似乎沒有定義jQuery。

雖然您希望通過CSS類獲取元素,但您需要document.getElementsByClassName('RemoveByMe')...而不是getElementsTagName,第二個看上去很近。

+0

謝謝。是的,它實際上是「by_Tag」,「by_Class」和我正在搜索的真實類名之間的一個錯誤匹配。感謝您指出,這使我重新尋找所有這些,並解決它:) –

+0

沒有問題,很高興你解決了它。 – jwwishart

0
$('.RemoveByMe').remove(); 

該片段是jQuery代碼,一個Javascript庫。

一個你的問題,你可以在這個線程找到解決方法: Remove all elements of a certain class with JavaScript

+0

謝謝。我已經看過,所以我實際上運行給定的代碼循環,直到沒有更多的匹配。事實是,代碼從一些網站(所有這些網站)中刪除了這些元素,並且在給定的鏈接中它只是不能,並且與其他腳本相同。 https://www1.sedecatastro.gob.es/CYCBienInmueble/OVCBusqueda.aspx –

相關問題