我非常感谢Android设备上的一些测试自动化方面的一些帮助 . 我们使用Appium和RemoteWebDriver代码访问Android模拟器,打开我们的应用程序,点击并移动应用程序UI,这一切似乎都运行良好 .
但是,作为我测试的一部分,我想使用Appium在设备上发起电话呼叫,保持呼叫打开一分钟左右,然后挂机 . 是否可以通过RemoteWebDriver对象执行此操作?
如果没有,建议在模拟器上进行调用的方法是什么?我已经看到了一些关于对模拟器使用直接telnet调用的讨论,但希望有更好的方法!
4 回答
事实证明这是可能的,尽管可能比我预期的更痛苦 . 我必须做两件事:指定要打开的正确应用程序,并计算出拨号盘上按钮的xpath引用 . 活动是com.android.contacts.activities.DialtactsActivity和一些按钮的xpath是:
数字文本字段:/ linear / linear / editText
数字1按钮:/ linear / table / row [1] / imageButton [1]
数字5按钮:/ linear / table / row [2] / imageButton [2]
拨号按钮:/ linear / frame / imageButton
如果有人有更好的方法来做到这一点,我会很高兴看到它!马丁
You may set these desired capabilities :
and use this snippet to make call via Appium :
这将调用第一个搜索项
这将在60秒后断开呼叫 .
按主页按钮driver.sendKeyEvent(3);
按通话键 . dr.sendKeyEvent(5);
找到拨号盘driver.findElementById(“com.android.dialer:id / dialpad_button”) . click();
通过发送键或sendKeyEvents键入数字 . driver.findElement(By.className( “android.widget.EditText”))的SendKeys(phoneNumber的) .
按呼叫按钮driver.findElementById(“com.android.dialer:id / dial_button”) . click();
等待并按结束通话按钮 . . dr.findElementById( “com.android.dialer:ID / endButton”)点击();
您可以使用ADB开始拨打电话: