使用splash模拟登录时遇到的一点问题

利用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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事件处理程序在应用中是必不可少的,虽然现在很多框架都有自己实现事件处理方法,但是熟知原生才能让我们应对各种各样的需...
    俗三疯阅读 310评论 0 1
  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 1,294评论 3 11
  • 在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API。WebSocket提供了一...
    阳光嘚猴子阅读 430评论 0 5
  • 现在的生活条件越来越好了,孩子都比较金贵,对父母而言,对于物质条件都变着法的去满足孩子,好多爷爷奶奶,外公外婆的也...
    想不出好ID了阅读 91评论 0 0
  • EventBus3.0事件介绍 EventBus是一个基于观察者模式,并且是针对了Android进行优化的发布/订...
    心若冰清_阅读 8,611评论 0 2