selenium中执行JavaScript脚本,时间控件和老师的代码一样,但是时间修改不成功

修改属性前面需要加个sleep;刚打开页面的时候元素还没完全加载完成,你就修改了它的属性,加载完成后,就被覆盖了,所以你获取到的时间还是修改之前的

1 Like
  • 页面上时间控件中原本的数据是在加载时通过js生成写入的,这个写入的时间取决于页面加载时js语句执行的时间。而你通过selenium执行的js语句也会在相同的时间开始执行,这就形成了一种两个js语句争抢执行的局面,其实js都是执行了的,但是如果你的js语句先执行了,那么虽然修改成功了时间,却会在页面原本的js执行时又被覆盖了,导致最后获取的数据不正确。
  • 比较稳定的语句是在页面打开的时候增加显式等待或者强制等待,这样就可以保证页面的js执行完毕的情况下再执行自己设置好的js。
2 Likes

嗯嗯,我试过了,确实加个等待就好了~

谢谢~解释的很清楚,我明白什么意思了~