====================问题========================问题========================问题========================
在 java-clinet 更新到 5.0.4 后,不知道大家在定位元素的时候有没有遇到过这个错:
java.util.HashMap cannot be cast to org.openqa.selenium.WebElement
问题:大家用的 selenium-remote-driver 版本都是教高的吗,是的话 findElement 真的返回了一个 HashMap?
====================分析========================分析========================分析========================
原因-->因为 java-client 的依赖包 selenium-remote-driver 的版本升级不知道哪个版本后 findElement 返回的 Object 是一个 HashMap
燃鹅-->WebElement 并不是继承的 HashMap,remote 包的源码调试,如图:
====================过程========================过程========================过程========================
于是想到排除依赖,想找一个旧的或者新的 selenium-remote-driver 版本看是否存在这个问题,无奈排除过程不是很顺利,3.9.1 的版本总是出现
这点很奇怪,百思不得解,如图:
====================解决========================解决========================解决========================
最后谷歌到一个直接把 selenium-java 版本排除,依赖一个低版本 selenium-java 和 selenium-remote-driver 的包才得以解决
发出来是想让初学者不要像我这样踩坑,因为搜了很久都没搜到好用的解决办法,最后我能用的代码环境如图