Appium新手执行Selenium移动端脚本报错求助
解决Appium运行移动端Selenium脚本的报错问题
嘿,作为刚上手Appium的新手,遇到运行报错太正常啦!我帮你梳理下代码里的几个关键问题,这些大概率就是导致你报错的原因:
1. Desired Capabilities 名称大小写错误
Appium对Capabilities的命名是严格区分大小写的,你代码里的PLATFORMNAME和PLATFORMVERSION不符合规范,必须改成驼峰式的platformName和platformVersion——这是新手最容易踩的坑之一!
2. Driver类型不匹配
你同时声明了RemoteWebDriver和AppiumDriver,但实际初始化用的是RemoteWebDriver。其实AppiumDriver继承自RemoteWebDriver,还提供了移动端专属的操作API,更适合Appium测试场景,建议统一使用AppiumDriver<MobileElement>类型。
3. 额外排查建议
- 先确认你的设备已通过USB正常连接,执行
adb devices命令,确保输出里能看到你填写的UDID(A6HU4TAQKZYD8L9P) - 检查计算器应用的包名/Activity是否正确:部分定制ROM会修改系统应用的信息,你可以打开设备上的计算器,然后执行
adb shell dumpsys window | grep mCurrentFocus命令,获取真实的appPackage和appActivity - 确保Appium Server已经正常启动,并且监听的地址是
http://0.0.0.0:4723/wd/hub,新版本Appium(2.x)默认路径也是这个,但如果有配置改动需要对应调整
修复后的完整代码
package appiumtest; import java.net.URL; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileElement; public class AppiumTest { // 建议修改类名,避免和依赖类名冲突 static AppiumDriver<MobileElement> driver; // 统一使用AppiumDriver类型 public static void main(String[] args) { try { openCalculator(); } catch(Exception exp) { System.out.println("异常原因: " + exp.getCause()); System.out.println("异常信息: " + exp.getMessage()); exp.printStackTrace(); } } public static void openCalculator() throws Exception { DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability("deviceName", "Babar Ali"); cap.setCapability("udid", "A6HU4TAQKZYD8L9P"); // udid统一小写,符合规范 cap.setCapability("platformName", "Android"); cap.setCapability("platformVersion", "8.1.0"); cap.setCapability("appPackage", "com.android.calculator2"); cap.setCapability("appActivity", "com.android.calculator2.Calculator"); driver = new AppiumDriver<>(new URL("http://0.0.0.0:4723/wd/hub"), cap); System.out.println("Application started...."); } }
内容的提问来源于stack exchange,提问作者Soha Mir
相关产品推荐
相关产品推荐

