昨天遇到了一个比较诡异的问题,在脚本运行时一直获取不到一个节点,报错提示selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
,尝试使用多种定位方法都获取不到相应节点。但奇怪的是在debug运行时却是可以定位到的,在网上找了好多方式都无法解决。按理说debug运行的逻辑和正常运行是一样的呀,怎么就一个能获取到一个获取不到呢,这是啥情况,我都想放弃了。
后来通过对比,一个想法突然在脑海中闪现而过,有没有可能是程序运行太快,在数据还没有完全加载出来的时候就已经跑过这行代码了呢?于是在这行代码之前加了等待时间,经过验证,果然是这个问题导致的定位不到节点。
这次换到我来奔溃了,就这么个问题,昨天居然搞了那么长时间。一定要引以为戒,在数据加载的地方设置等待时间,防止此类问题再次发生。