利用splash渲染某网站登录页面,模拟click按钮登录发现按钮无反映。
检查页面源代码发现其按钮的click事件是通过js代码添加的。其在页面加载完成后(window.load()判定),使用addEventlistener添加,而splash似乎并没有执行这段代码。
在splash的github上提了issue,但是作者也并不知道是什么问题。
最后通过在splash的script中添加一段代码,向页面发送window.load事件后得以解决。代码如下:
assert(splash:runjs("var event3 = new Event('load');window.dispatchEvent(event3);"))
参考:
createEvent-dispatchEvent and preventDefault example - Mozilla Developer Center
javascript - How can I trigger an onchange event manually? - Stack Overflow
使用splash模拟登录时遇到的一点问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
- EventBus3.0事件介绍 EventBus是一个基于观察者模式,并且是针对了Android进行优化的发布/订...