Appium驱动程序空指针异常

时间:2015-12-22 15:24:57

标签: java android appium

我是Appium的新手,刚刚开始使用,我一直在关注一个例子,并在Android平板电脑上使用基本的联系人apk开始。我所拥有的代码几乎从我正在关注的示例中复制,但是当我尝试运行测试时,我得到一个空指针异常。我做了一些调试,发现driver = null是我得到这个异常的原因。我环顾四周,发现了一些我认为可能有用的代码,但它还没有。

我的代码是

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;
import java.util.concurrent.TimeUnit;
import java.net.MalformedURLException;
import java.net.URL;

public class addContact {

    AppiumDriver driver;

    @Before
    public void setUp () throws Exception {

        new DesiredCapabilities();
        DesiredCapabilities capabilities = DesiredCapabilities.android();
           capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"AndroidTestDevice");

        try
        {
            driver = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
            driver.manage().timeouts().pageLoadTimeout(120, TimeUnit.SECONDS);

        }
        catch (MalformedURLException e)
        {
            System.out.println("URL init error");
        }

    }

    @After
    public void tearDown () throws Exception {
        driver.quit();
    }

    @Test
    public void addNewContact (){


     System.out.println (driver);
     WebElement addContactButton = driver.findElementById("com.example.android.contactmanager:id/addContactButton");
     addContactButton.click();
    }

}`

我得到的例外是:

java.lang.NullPointerException
at addContact.addNewContact(addContact.java:49)

并且出现的行是:

WebElement addContactButton = driver.findElementById("com.example.android.contactmanager:id/addContactButton");

1 个答案:

答案 0 :(得分:0)

因为你正在使用" testng"它显示为空指针的原因注释"测试"和" junit"注释"之前和之后"。将import org.testng.annotations.Test;更改为import org.junit.Test;并将其作为junit test运行。

这应该可行,只是在我这边测试过。