我试图通过在打开的浏览器上执行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删除元素。 (虽然我可以成功添加它们)
我怎么能跳过这种预防?
答案 0 :(得分:1)
第一个显然似乎没有定义jQuery。
第二个看起来很接近但你需要document.getElementsByClassName('RemoveByMe')...而不是getElementsTagName,因为你想通过CSS类获取元素。
答案 1 :(得分:0)
$('.RemoveByMe').remove();
该片段是jQuery Code,一个Javascript库。
您可以在此主题中找到问题的解决方案: Remove all elements of a certain class with JavaScript