使用JavaScript从打开的Web浏览器中删除元素

时间:2014-02-08 10:33:10

标签: javascript python selenium element

我试图通过在打开的浏览器上执行javascript来删除“RemoveByMe”类的所有元素。我以前自己创建了这些元素。

我从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删除元素。 (虽然我可以成功添加它们)

我怎么能跳过这种预防?

2 个答案:

答案 0 :(得分:1)

第一个显然似乎没有定义jQuery。

第二个看起来很接近但你需要document.getElementsByClassName('RemoveByMe')...而不是getElementsTagName,因为你想通过CSS类获取元素。

答案 1 :(得分:0)

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

该片段是jQuery Code,一个Javascript库。

您可以在此主题中找到问题的解决方案: Remove all elements of a certain class with JavaScript