我是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的服务器日志part 1 part 2 part 3 part 4 part 5 part 6 part 7
由于TextView
的内容未更改,因此测试用例失败。
screenshot of result
我该如何解决?
预先感谢。
答案 0 :(得分:0)
您引用的text
文本将始终返回与以前相同的文本,因为您在更新文本后找不到文本视图。
要确保下次获得更新的文本,必须再次重新找到相同的元素,然后对其进行postTest
。
尝试一下并检查。应该可以。