public class StartFirstJobTest {
AppiumDriver driver;
@BeforeTest
public void setUp() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "F4AZFG07P508");
//capabilities.setCapability("platformName","Android");
//capabilities.setCapability("platformVersion", "5.0");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
当我尝试运行测试时,出现此错误。
org.openqa.selenium.SessionNotCreatedException:无法创建新的
远程会话。期望的能力=能力
[{platformName=Android, deviceName=F4AZFG07P508}],必需
功能 = 功能 [{}] 构建信息:版本:'3.3.1',
修订:'5234b325d5',时间:'2017-03-10 09:10:29 +0000' 系统信息:
主机: 'MacBook-Pro-Roman.local', ip: 'fe80:0:0:0:77:aef0:77:32%en0',
os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.3',
java.version: '1.8.0_121' 驱动程序信息: driver.version: AndroidDriver
我认为我在appium中正确设置了所有内容(当检查器启动时,设备已安装应用程序并且可以进行测试)
作为项目收集者,我使用 Maven
UPD.
我正在尝试使应用程序自动化。我在代码中指定了附加功能
@BeforeTest
public void setUp() throws Exception {
File app = new File("/Users/romanderabin/Downloads/TimeTracker.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName","F4AZFG07P508");
capabilities.setCapability("platformVersion", "5.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.ronasit.timetrackerandroid");
capabilities.setCapability("appActivity","com.ronasit.timetrackerandroid.MainActivity");
driver = new AndroidDriver(new URL("http://127.0.0.1:4727/wd/hub/"), capabilities);
错误是一样的
org.openqa.selenium.SessionNotCreatedException:无法创建新的
远程会话。期望的能力=能力
[{app=/Users/romanderabin/Downloads/TimeTracker.apk,
appPackage=com.ronasit.timetrackerandroid,
appActivity=com.ronasit.timetrackerandroid.MainActivity,
平台版本=5.0,平台名称=Android,设备名称=F4AZFG07P508}],
所需功能 = 功能 [{}] 构建信息:版本:
'3.3.1',修订:'5234b325d5',时间:'2017-03-10 09:10:29 +0000'
系统信息:主机:'MacBook-Pro-Roman.local',ip:
'fe80:0:0:0:77:aef0:77:32%en0', os.name: 'Mac OS X', os.arch:
'x86_64',os.version:'10.12.3',java.version:'1.8.0_121'驱动程序
信息:驱动程序.版本:AndroidDriver
在
org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
在
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
在
io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:69)
在
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
在
io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:40)
在 io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
在
io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
在
org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
在
org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)
在
org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:144)
在
io.appium.java_client.DefaultGenericMobileDriver。(DefaultGenericMobileDriver.java:36)
在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:114)
在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:132)
在
io.appium.java_client.android.AndroidDriver。(AndroidDriver.java:92)
在 StartFirstJobTest.setUp(StartFirstJobTest.java:30) 处
sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498) 处
org.testng.internal.MethodInitationHelper.invokeMethod(MethodInitationHelper.java:85)
在
org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
在 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
在 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
在 org.testng.TestRunner.beforeRun(TestRunner.java:648) 处
org.testng.TestRunner.run(TestRunner.java:616) 在
org.testng.SuiteRunner.runTest(SuiteRunner.java:359) 在
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) 在
org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) 在
org.testng.SuiteRunner.run(SuiteRunner.java:261) 在
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在
org.testng.TestNG.runSuitesSequentially(TestNG.java:1191) 在
org.testng.TestNG.runSuitesLocally(TestNG.java:1116) 在
org.testng.TestNG.run(TestNG.java:1024) 在
org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72) 在
org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127) 在
sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498) 处
com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
测试被忽略。
当我尝试开始测试时 Appium 记录
[HTTP] --> POST /wd/hub/session
{“desiredCapativity”:{“app”:“/Users/romanderabin/Downloads/TimeTracker.apk”,“appPackage”:“com.ronasit.timetrackerandroid”,“appActivity”:“com.ronasit.timetrackerandroid.MainActivity”,“ platformVersion":"5.0","platformName":"Android","deviceName":"F4AZFG07P508"},"requiredCapability":{},"capability":{"desiredCapabilities":{"app":"/Users/romanderabin /Downloads/TimeTracker.apk","appPackage":"com.ronasit.timetrackerandroid","appActivity":"com.ronasit.timetrackerandroid.MainActivity","platformVersion":"5.0","platformName":"Android", “deviceName”:“F4AZFG07P508”},“requiredCapability”:{}},“alwaysMatch”:{“app”:“/Users/romanderabin/Downloads/TimeTracker.apk”,“appPackage”:“com.ronasit.timetrackerandroid” ,“appActivity”:“com.ronasit.timetrackerandroid.MainActivity”,“platformVersion”:“5.0”,“platformName”:“Android”,“deviceName”:“F4AZFG07P508”},“firstMatch”:[]}
[调试] [MJSONWP] 错误参数:BadParametersError:参数为
不正确。我们要
{“必需”:[“所需能力”],“可选”:[“必需能力”,“sessionId”,“id”]}
你发送了
[“desiredCapabilties”,“requiredCapabilties”,“功能”,“alwaysMatch”,“firstMatch”]
[HTTP]