Appium驱动程序空指针异常



我是Appium的新手,刚刚开始,我一直在学习一个例子,并在Android平板电脑上使用基本的Contacts 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");

之所以显示为空指针,是因为您将"testng"注释用于"Tests",将"junit"注释用作"Before and after"。将import org.testng.annotations.Test;更改为import org.junit.Test;,并将其作为junit测试运行。

这应该有效,只是在我这边测试了一下。

最新更新