今天在查询 Appium 的一些 API 的时候,发现一些自己没有版本没有一些 API

sendKeyEvent
findElementByAndroidUIAutomator
getNetworkConnection()

我就随便写了几个,发现都没有,原来问题是这个

private AppiumDriver driver;

这么声明的 driver 是没有上面提到的 API 的,后来在一个叫稻梦的同学帮忙下解决这个问题

private AndroidDriver<AndroidElement> driver;

这个 driver 正确的声明是上面这样的,这么声明后,剩下的 API 就全正常了。
上面如果有错误麻烦指出,新手学习中。。。

正好看到一哥们写的原理,看下就明白上面的原因了
https://testerhome.com/topics/1206

public class AndroidDriver<RequiredElementType extends WebElement> extends AppiumDriver<RequiredElementType> implements
        AndroidDeviceActionShortcuts, HasNetworkConnection, PushesFiles,
        StartsActivity, FindsByAndroidUIAutomator<RequiredElementType>
public abstract class AppiumDriver<RequiredElementType extends WebElement> extends DefaultGenericMobileDriver<RequiredElementType>

查找源码的时候发现上面问题出现的原因,感觉是作者为了兼容以前版本还有使用 AndroidDriver 这个类,就直接继承了 AppiumDriver,在 AppiumDriver 基本上再封装一些基本功能。


↙↙↙阅读原文可查看相关链接,并与作者交流