对于之前写的模拟快排代码,在使用过程中,偶尔会出现不同的错误,这次对这些错误进行思考和解决,这样保证代码的稳定运行。下面就一些使用过程中错误总结一下。
运行出错Protocol error (Runtime.callFunctionOn): Promise was collected
对于这样的错误,根据查询资料分析,说是在之前页面没有加载完毕,后面的运行,就会造成元素获取不到的状态,在注释中时间上面会有冲突,所以要合并,进行延时加载一次,之后就获取对应的元素,就可以了。
# await self.page.goto(start_url,timeout=20000)
# await self.page.waitForSelector('#su',options={'timeout':10*1000})
await asyncio.wait([
self.page.goto(start_url),
])
运行出错Cannot find .input_3npy4 on this page
对于这样的错误,主要是因为没有找到page没有找到对应的元素。那么在代码中获取元素的样式,对样式进行判断,从而就可以获取到元素,进行点击了。
另外对于关键词没有在网页上收录,或者出现百度验证码的提示,说明代理ip质量不好,那么在代码中会进行报错提示
然后解决一些小问题后,就运行正常了,对于模拟的其他算法后面我会继续进行优化。