我试图通过在打开的浏览器上执行 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 删除元素。 (虽然我可以成功添加它们)
我怎样才能跳过这种预防措施?
最佳答案
第一个显然似乎没有定义 jQuery。
第二个看起来很接近,尽管您需要 document.getElementsByClassName('RemoveByMe') ...而不是 getElementsTagName,因为您想通过 CSS 类获取元素。
关于javascript - 使用 JavaScript 从打开的 Web 浏览器中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644908/