当前位置: 首页 > 知识库问答 >
问题:

Appium Java客户端中的NullPointerException

仲孙小云
2023-03-14

在尝试设置一个简单的AndroidDriver时,我得到了一个NullPointerException

所需的代码如下-

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.MobileElement;

import io.appium.java_client.android.AndroidElement;

import java.net.URL;
import java.net.MalformedURLException;

import org.openqa.selenium.remote.DesiredCapabilities;

public class TestAutomation {
    protected AndroidDriver<MobileElement>  driver;

    public void setup() throws MalformedURLException, InterruptedException {
        URL u = new URL("http://127.0.0.1:4723/wd/hub");

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("device", "Android");
        capabilities.setCapability("deviceName","Android");
        capabilities.setCapability("platformName","Android");

        driver = new AndroidDriver<MobileElement>(u, capabilities);
    }

    public static void main(String[] args) throws Exception {
        TestAutomation object = new TestAutomation();
        System.out.println(object);
        object.setup();
    }
}

Appium Java客户机版本是6.1.0。

我得到的异常如下所示-

在io.appium.java_client.android.androiddriver.getcapabilities(androiddriver.java:209)在org.openqa.selenium.remote.remoteWebdriver.execute(remoteWebdriver.java:669)在io.appium.java_client.defaultGenericMobiledRiver.execute(DefaultGenericMobiledRiver.java:42)在在org.openqa.selenium.remote.remoteWebDriver.(remoteWebDriver.java:249)在org.openqa.selenium.remote.remoteWebDriver.(remoteWebDriver.java:131)在org.openqa.selenium.remote.remoteWebDriver.(remoteWebDriver.java:144)在io.appium.java_client.defaultGenericMobiledRiver在位于TestAutomation.setu的roid.AndroidDriver.(AndroidDriver.java:93)在TestAutomation.main(TestAutomation.java:28)处的p(TestAutomation.java:22)

共有1个答案

漆雕嘉茂
2023-03-14

你在想要的能力上有问题。

必须包括appActivity和appPackage。

必须删除所需功能的设备。

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "My Phone");
caps.setCapability("platformName", "Android");
caps.setCapability("appPackage", "your app Package");
caps.setCapability("appActivity",
            "your app activity");;
 类似资料:
  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我使用生成的app engine Android客户端(jar lib)。31个客户中有30个没有问题。但三星的一款平板电脑拒绝连接并给出了这样的死机: Android:4.4.4制造商:三星型号:SM-T533-日期:Mon Aug 03 09:49:03 CEST 2015 ApiUtils类:

  • URI 方法 URI() string 返回当前客户端使用的服务器地址。 SetURI 方法 SetURI(uri string) 设置当前客户端使用的服务器地址。如果你想要设置多个服务器地址,请使用 SetURIList 方法代替该方法。 URIList 方法 URIList() []string 返回当前客户端可使用的服务器地址列表。 SetURIList 方法 SetURIList(uriL

  • 客户端事件通过 SetEvent 方法进行设置。 客户端事件有两个,它们分别定义为: type onErrorEvent interface { OnError(name string, err error) }   type onFailswitchEvent interface { OnFailswitch(Client) } 因为 go 语言不需要显式实现接口的特点,所以这两

  • 创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string