Как проверить OnClick в Appium Android Test - PullRequest
0 голосов
/ 17 декабря 2018

Я новичок в Appium.Я пытаюсь проверить функцию OnClick кнопки.Активность включает в себя кнопку и TextView.Когда я нажимаю кнопку, текст TextView изменяется (только 1 раз - не переключается).Однако функция OnClick не работает.Это мой тест:

@Test
public void click_button() {
  AndroidElement text = (AndroidElement)((AndroidDriver)driver).findElementById(package_ + "text");
  AndroidElement button = (AndroidElement)((AndroidDriver)driver).findElementById(package_ + "button");
  String prevTest = text.getText();
  wait.until(ExpectedConditions.visibilityOf(button));

  //attemp 1
  button.click();
  driver.findElement(MobileBy.className("android.widget.Button")).click();

  //attempt 2
  Actions actions = new Actions(driver);
  actions.click(button);
  actions.perform();

  //attempt 3
  AndroidTouchAction touch = new AndroidTouchAction ((PerformsTouchActions) driver);
  touch.tap (TapOptions.tapOptions ()
          .withElement (ElementOption.element (button)))
          .perform ();
  String postTest = text.getText();
  assertNotEquals(prevTest, postTest);
}

Это моя функция OnClick:

public void buttonClick(View view) {
    textView.setText("Clicked");
}

Кроме того, это функция setUp:

@Before
public void setUp() throws Exception {
    File classpathRoot = new File(System.getProperty("user.dir"));
    File app = new File(classpathRoot, "build/outputs/apk/debug/app-debug.apk");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Galaxy A7");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.0");
    capabilities.setCapability(MobileCapabilityType.APP, app);
    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
    driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
    wait = new WebDriverWait(driver, 10);
    package_ = "com.example.trafalgarandre.testtesting:id/";
}

Это сервержурналы захода на посадку 1 часть 1 часть 2 часть 3 часть 4 часть 5 часть 6 part 7

Тестовый пример не пройден из-за того, что содержание TextView не изменяется. скриншот результата Как это исправить?Заранее спасибо.

1 Ответ

0 голосов
/ 24 декабря 2018

text, на который вы ссылаетесь, чтобы получить postTest текст, всегда будет возвращать тот же текст, что и раньше, так как вы не нашли текстовое представление снова после обновления текста.

Чтобы убедиться, что вы получилиобновленный текст в следующий раз, когда вам нужно снова найти тот же элемент, а затем выполнить getText для него.

Попробуйте и проверьте.Это должно работать.

...