本文主要是介绍记:一次由面及点,又及逗号的Phantom debug,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么bug?bug什么?咋肥四?
这是我司一个客户端软件,此处是将业务系统网页上的图表截图,放入客户端页面里。
你也看到了,这图,,白了。而在页面上的这货呢?
生龙活虎,有蹦有跳,可大可小。那么问题来了,它经历了什么?
bug图的奇幻漂流的,,,还原:
首先,we have a phantomjs , we have a page ,呃♂!screenshot!
没错,客户端通过调用phantomjs将图表的页面截下来
但是phantomjs如果直接看她(图表页)会被壮汉(login)拦下,
所以,我们为了成全phantomjs给壮汉偷偷弄了个绿……sso页,
最初,我怀疑是phantomjs访问的 sso页面 有问题。
然后我就找他对了个峙:
我想了想,phantom这孩子怎么就没看到呢,我都看到了鸭?
然后我去问了问phantom他咋肥四:
咦?他说妹子找不到衣服了所以没出来?
然鹅
于是,我去找了下,这个叫做showMchart的衣服在哪:
那么这个衣服谁提供的呢?
在这,那么为啥就没给出去呢?我王某人怀疑这家伙根本没出门!于是我加了这么一段:
又教phantomjs做这么个事:
去吧!phantom!于是:
哎?咋啥也没有呢?这衣服供应商(viewmquadrant.js)根本没工作啊?
然后我看了看是谁找的这一家:
emmm,竟然还是自动找的,(话说原来还都是没有这么多 金三月半 代码的,咋突然就多了……sigh)
那么这块找到的是啥呢?
看起来仿佛没问题啊?难不成是phantom这孩子去看的时候发生了啥?
然后我准备debug phantom,于是我在叫这孩子的时候加了一段口诀:
--remote-debugger-port=9000
然后扒开这孩子的脑子
然后我在Console里敲下了__run();+Enter
换行了?说好的运行到Breakpoint呢?于是stackoverflow了一下
我又试了下:
我决定放弃,这孩子脑子不太好使=-=
然后我发现了这个
哦豁,VSC赛高!配置如下:
然后开始愉快的de他!
我们在open之后evaluate之前打个断点,然后看看这个page里有没有加载那个js的script节点
我发现这样不行。然后决定在源代码里写log,运行结果如下
这不是有么?明明正常浏览器上没问题,这孩子也加载了js,怎么就看不到了呢?
于是我怀疑是延时问题,那么让我们来等他反应一会:给个5秒。
结果喜(xi)大(wen)普(le)奔(jian):
还是白的
那么问题来了,与这个图类似的图呢?viewChart是个通用的页,别的小伙伴也通过它来看图啊
所以我找到了动态散点图
Owww……这图就没问题,尤其对比底层builder之后发现,这俩图,高度一致!
那么问题来了:歪?
于是,我开着vsc准备对比一下
好像发现了那里不对……
唔姆唔姆,给你们标个特写
对,罪魁祸首是个逗号菌!
完。
这篇关于记:一次由面及点,又及逗号的Phantom debug的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!