所以我正在尝试为在Android模拟器(avd)中运行的Android应用程序编写自动化测试脚本,但我在Appium日志中收到以下错误:
[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect.
We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities
","capabilities","sessionId","id","sessionId","id"]} and you sent ["desiredCapab
ilities","requiredCapabilities","capabilities","alwaysMatch","firstMatch"]
我的设置是:
在cmd中运行'adb devices'命令给我
List of devices attached
emulator-5554 device
所需的功能设置是
@BeforeClass
public void setUp() throws MalformedURLException{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName","Android");
capabilities.setCapability("platformVersion","5.1");
capabilities.setCapability("deviceName","emulator-5554");
capabilities.setCapability("app", path_to_apk);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
运行测试时输出IDE错误:
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{app=src//main//resources//test.apk, platformVersion=5.1, platformName=Android, deviceName=emulator-5554}], required capabilities = Capabilities [{}]
Build info: version: '3.3.0', revision: 'b526bd5b41', time: '2017-03-07 19:26:04 +0000'
我现在陷入困境,不知道该怎么做。
答案 0 :(得分:1)
我无法像使用OP那样使用selenium 3.0.1。我使用了selenium grid和appium。最终对我有用的是使用appium@1.6.4-beta,它适用于高达3.1.0版本的硒。
答案 1 :(得分:1)
我在评论中提到,我最终使用了旧版本的Selenium,以便获得与Appium 1.6.3所期望的匹配的所需功能。就我而言,它是Selenium Java Client 3.0.1 + Appium 1.6.3。
答案 2 :(得分:0)
org.openqa.selenium.SessionNotCreatedException:
只有当我们无法在appium和移动设备之间建立时,才会出现上述异常。
有可能apk路径错误,因为它在日志app=src//main//resources//test.apk
中显示,但它应该是存储目录的路径,如c://mobile//apk//test.apk
,请更正。
您还没有在 DesiredCapabilities 中提及 appPackage 和 appActivity ,如下所示。
// specify the application package that we copied from appium
capabilities.setCapability("appPackage", "com.testapp");
// specify the application activity that we copied from appium
capabilities.setCapability("appActivity", ".HomeScreenActivity");
您已在设备上安装.apk时需要以上参数。在创建会话时包含这些功能总是好的。
如果它不适合你,请告诉我。