【问题标题】:NullPointerException in Appium Java ClientAppium Java 客户端中的 NullPointerException
【发布时间】:2019-04-24 20:30:54
【问题描述】:

我在尝试设置一个简单的 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。

验证 Appium 服务器在 localhost 的 4723 端口上运行。

我有什么遗漏吗?

我得到的异常如下所示 -

线程“main”中的异常 java.lang.NullPointerException 在 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) 在 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:249) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144) 在 io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38) 在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:84) 在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:94) 在 io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:93) 在 TestAutomation.setup(TestAutomation.java:22) 在 TestAutomation.main(TestAutomation.java:28)

【问题讨论】:

  • 你也可以添加Appium Server日志,很容易发现问题
  • 我试图获取服务器日志,但日志上几乎没有任何内容,因为根本没有连接到服务器。
  • 忘记添加我的 Appium Server 版本是 1.9.1
  • 你的appium服务器运行了吗?
  • 是的,通过netstat -a验证

标签: appium appium-android


【解决方案1】:

您对所需功能有疑问。

appActivityappPackage 必须包含在内。

设备必须从您想要的功能中删除。

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");;

还将您的 selenium-java 版本更新到最新的稳定版本。

【讨论】:

  • 尝试过不起作用 - 另外,得到nullPointerException。如果错误与会话创建有关,或者可能会有所不同。可能存在兼容性问题?
  • 您使用的是哪个 selenium-java 版本?我正在使用 3.13.0,它对我来说工作正常。
  • 我认为您的问题与 selenium-java 版本有关。尝试将其更改为 3.13.0 版本。
  • 当然让我试试。
  • 是的,适用于最新的 selenium 版本 3.141.59。谢谢。将其标记为答案。您能否更新一下“请尝试将 Selenium 版本更新为最新版本并尝试”的答案,然后我会将其标记为答案
猜你喜欢
  • 1970-01-01
  • 2018-12-27
  • 2019-09-04
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
相关资源
最近更新 更多