Appium 请教一个关于 appium 中 java-client 与 selenium 版本的问题

HondaXX · 2019年04月22日 · 2037 次阅读

====================问题========================问题========================问题========================
在 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 的包才得以解决
发出来是想让初学者不要像我这样踩坑,因为搜了很久都没搜到好用的解决办法,最后我能用的代码环境如图

共收到 0 条回复 时间 点赞
HondaXX 关闭了讨论 05月08日 12:32
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册