我正在學習appium並試圖從一個類調用一個對象到另一個類並面臨空指針異常。 下面是我的代碼:在appium中面臨「空指針異常」
public class TestCommons {
public AndroidDriver driver;
public void setUp() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "MotoE");
File file = new File("D:/APK1/com.vector.guru99.apk");
capabilities.setCapability("app", file);
try {
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public void tearDown() {
driver.closeApp();
}
}
我想在其他類中使用上面的類即「TestCommons」。我想使用驅動程序對象。
二等低於:
public class Day03 extends TestCommons {
TestCommons commons = new TestCommons();
@BeforeClass
public void beforeClass() {
commons.setUp();
}
@Test(enabled = true)
public void f() {
if (driver.findElement(By.id("com.vector.guru99:id/action_quiz")).isDisplayed()) {
System.out.println("Quiz is displayed");
driver.findElement(By.id("com.vector.guru99:id/action_quiz")).click();
System.out.println("quiz is click");
}
}
@AfterClass(enabled = true)
public void afterClass() {
commons.tearDown();
}
}
獲得空指針在第二個方案@:
if(driver.findElement(By.id("com.vector.guru99:id/action_quiz")).isDisplayed();
任何人都可以澄清我請。
你在哪裏申報驅動程序? –
在「TestComons」類中聲明。問題中的第一個類 – naazneen3264
在調用isDisplayed()之前檢查driver.findElement的結果。我想你會發現你的空問題。 – Udo