Добрый день!
Есть ли у кого-то опыт использования аннотаций @FindBy, @AndroidFindBy и @IOSFindBy в проектах Appium
Моя цель – вынести все локаторы элементов на верхний уровень, чтобы не переопределять их для каждого теста отдельно. Однако сейчас если в тесте:
public class AndroidSample_Test{
private AppiumDriver driver;
@Before
public void setUp() throws Exception {
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "../../Documents/TestApp");
File app = new File(appDir, "TestApp.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName","Nexus7");
capabilities.setCapability("platformVersion", "4.3");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("app", app.getAbsolutePath());
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
@After
public void tearDown() throws Exception {
driver.quit();
}
@AndroidFindBy (id = "example.example.android:id/action_sign_in")
public WebElement signInLink;
@Test
public void enterApp() {
signInLink.click();
}
Я получаю ошибку NullPointerExeption
Но, если
@Test
public void enterApp() {
WebElement signInLink = driver.findElement(By.id("example.example.android:id/action_sign_in"));
signInLink.click();
}
Тест завершается успешно. И так с аннотациями как @FindBy, так и @AndroidFindBy