利用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进行优化的发布/订...