我有一个脚本(在<script></script>
标签内),每次加载页面时都会执行。是否可以在WebDriver中加载页面之前删除WebElement以防止该脚本执行?
我正在考虑以下几点:
以某种方式获取原始 HTML 代码(可能获取源代码或其他内容),删除部分(使用selenium或parser),&#34; inject&#34;编辑后的代码回到Selenium(Firefox WebDriver或者PhantomJS),最后为该网站上的所有页面执行。
是否可以这样做,或者这可能是不可能的设计?
答案 0 :(得分:1)
如果你安装selenium-requests,你可以为页面发出GET请求,处理加载的html / etc,然后然后放在标签中。
插入处理结果可能会很棘手,因为您可能还需要将当前浏览器URL设置为匹配(只需插入它就会导致脚本跨域加载,相对路径等问题) - 也许有一种覆盖(或允许覆盖)硒与预处理信息一起接收的“获取”响应的方法
Selenium-Requests使用请求库发出请求,该库使用该域的运行webdriver的cookie并模拟该webdriver发送的默认HTTP头。结果是使用webdriver的状态创建的低级HTTP请求和响应。这是必需的,因为Selenium接口是非常高级的,并且在开发页面和探索DOM方面做的不仅仅是在Python中本身可行。