我是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");
答案 0 :(得分:0)
因为你正在使用" testng"它显示为空指针的原因注释"测试"和" junit"注释"之前和之后"。将import org.testng.annotations.Test;
更改为import org.junit.Test;
并将其作为junit test运行。
这应该可行,只是在我这边测试过。