java - appium , selenium.SessionNotCreatedException 错误

标签 java selenium appium appium-android

我尝试启动 appium 第一个测试,但出现错误,但某些字段不为空。 我的错误日志是:

**

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: A new session could not be created. Details: The desiredCapabilities object was not valid for the following reason(s): deviceName can't be blank, (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 393 milliseconds Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z' System info: host: 'ASUS-BILGISAYAR', ip: '192.168.1.103', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_151' Driver info: driver.version: AndroidDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:215) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167) at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53) at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91) at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$24(ProtocolHandshake.java:359) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source) at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source) at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.findFirst(Unknown Source) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:362) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:136) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646) at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:255) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:237) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:138) at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:87) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:111) at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:72) at com.enuygun.test.StartApplication.main(StartApplication.java:19)

** 我的代码如下:

package com.enuygun.test;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.android.AndroidDriver;



public class StartApplication {

        public static void main(String[] args) throws MalformedURLException, InterruptedException {
            DesiredCapabilities capabilities = DesiredCapabilities.android();
            WebDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
            File classpathRoot = new File(System.getProperty("user.dir"));
            File appDir = new File(classpathRoot, "/Apps/Amazon/");
            File app = new File(appDir, "in.amazon.mShop.android.shopping.apk");


            capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
            capabilities.setCapability("deviceName", "Micromax A311");
            capabilities.setCapability("platformVersion", "4.4.2");
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("app", app.getAbsolutePath());
            capabilities.setCapability("appPackage", "in.amazon.mShop.android.shopping");
            capabilities.setCapability("appActivity", "com.amazon.mShop.home.HomeActivity");


            driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
            Thread.sleep(10000);
            driver.quit();

    }

}

最佳答案

您在设置所需功能之前实例化驱动程序,因此您的功能对象为空。设置所需的功能属性后,移动您的线路以创建新的驱动程序。

关于java - appium , selenium.SessionNotCreatedException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213684/

相关文章:

java - ImageJ - 减去背景

javax.ws.rs.Produces 在 Spring 中等效

python - 保存 Selenium 的当前状态

java - Selenium - 根据另一个元素选择一个元素

java用外部jar文件构建ant文件

java - Youtube API集成+RecyclerView(Resources.KEY无法解析)

类属性中的 Javascript ES6 常量未定义

java - Appium Webdriver 导入问题

ios - Jenkins 无法打开 IOS 模拟器

python - "Desired Capabilities must be a dictionary"将 dict 传递到参数化方法时出错