Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript从打开的Webbrowser中删除元素_Javascript_Python_Selenium_Element - Fatal编程技术网

使用JavaScript从打开的Webbrowser中删除元素

使用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'

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

我从Python调用javascript:Selenium控制浏览器,并将javascript发送到开放浏览器。但我认为问题在于javascript方面,原因在后面几行

用于执行每个脚本的python代码为:

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_类”和我搜索的实际类名之间的一个不匹配。谢谢你的指点,这让我重新寻找并解决了所有问题:)