Я новичок в 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часть 7
Тестовый пример не выполняется, так как содержимое TextView
не меняется.
скриншот результата
Как я могу это исправить?
Заранее спасибо.
Работает нормально. Просто тест не проходит из-за того, что текст TextView не меняется
Можете ли вы поделиться errors
, который вы видите в журналах сервера при выполнении разных кодов попыток?
Пожалуйста, добавьте также журнал сервера Appium.
@AmitJain Я не вижу тега Error в журналах сервера, но я просто поделюсь им. Однако могу я спросить, как я могу поделиться здесь errors
?
Я думаю, вам нужно определить свой драйвер как статический. Попробуйте определить свой драйвер как статический.
@SubanDhyako Я пытался определить как статический, но все равно не удалось
text
, на который вы ссылаетесь для получения текста postTest
, всегда будет возвращать тот же текст, что и раньше, поскольку вы не нашли текстовое представление снова после обновления текста.
Чтобы убедиться, что вы получите обновленный текст в следующий раз, вы должны снова найти тот же элемент, а затем выполнить для него getText
.
Попробуйте это и проверьте. Он должен работать.
Вы инициализировали DesiredCapabilities? Ваш сервер Appium работает? Какую ошибку вы получаете? Также добавьте журнал ошибок