使用JavaScript从打开的Webbrowser中删除元素
我试图通过在一个开放的浏览器上执行javascript来删除类“RemoveByMe”中的所有元素。我之前自己创建了这些元素 我从Python调用javascript:Selenium控制浏览器,并将javascript发送到开放浏览器。但我认为问题在于javascript方面,原因在后面几行 用于执行每个脚本的python代码为:使用JavaScript从打开的Webbrowser中删除元素,javascript,python,selenium,element,Javascript,Python,Selenium,Element,我试图通过在一个开放的浏览器上执行javascript来删除类“RemoveByMe”中的所有元素。我之前自己创建了这些元素 我从Python调用javascript:Selenium控制浏览器,并将javascript发送到开放浏览器。但我认为问题在于javascript方面,原因在后面几行 用于执行每个脚本的python代码为: Browser.execute_script("script here") 到目前为止,我已经尝试了以下javascript代码: $('.RemoveByMe'
Browser.execute_script("script here")
到目前为止,我已经尝试了以下javascript代码:
$('.RemoveByMe').remove();
var DocElements = document.getElementsByTagName('RemoveByMe');for(var i = 0; i < DocElements.length; i++){DocElements[i].parentNode.removeChild(DocElements[0]);}
这一条给出了以下错误消息:
#WebDriverException: Message: u'$ is not defined' ; Stacktrace:
at anonymous
此错误似乎来自python方面,因此我测试了更多javascript代码:
$('.RemoveByMe').remove();
var DocElements = document.getElementsByTagName('RemoveByMe');for(var i = 0; i < DocElements.length; i++){DocElements[i].parentNode.removeChild(DocElements[0]);}
var DocElements=document.getElementsByTagName('RemoveByMe');对于(var i=0;i
这一个不会抛出任何错误(确认python端正在工作),但仍然不会删除元素。(javascript无法删除它们)
所有经过测试的javascript代码在一些网站上都能正常工作,但事实并非如此。
这让我认为问题在于网站,阻止javascript删除元素。(尽管我可以成功添加它们)
我怎么能跳过这种预防呢?第一个显然似乎没有定义jQuery 第二个看起来很接近,但您需要document.getElementsByClassName('RemoveByMe')。。。而不是通过getElementsTagName,因为您希望通过CSS类获取元素
$('.RemoveByMe').remove();
这段代码是jQuery代码,一个Javascript库
您可以在此线程中找到问题的解决方案:
谢谢。我已经看过了,所以我实际上在循环中运行给定的代码,直到没有更多的匹配。事实上,代码成功地从一些网站(所有网站)中删除了这些元素,在给定的链接中,它无法删除这些元素,并且与其他脚本具有相同的效果。非常感谢。是的,它实际上是“by_标记”、“by_类”和我搜索的实际类名之间的一个不匹配。谢谢你的指点,这让我重新寻找并解决了所有问题:)