【问题标题】:How to test OnClick in Appium Android Test如何在 Appium Android Test 中测试 OnClick
【发布时间】:2019-05-17 14:34:20
【问题描述】:

我是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/";
}

这是方法 1part 1part 2part 3part 4part 5part 6part 7 的服务器日志

由于TextView 的内容没有改变,测试用例失败。 screenshot of result 我该如何解决? 提前致谢。

【问题讨论】:

  • 你初始化DesiredCapabilities了吗?你的appium服务器在运行吗?你得到什么错误?也添加错误日志
  • 运行正常。只是由于 TextView 的文本没有改变而导致测试失败
  • 你可以分享你在执行不同尝试代码时在服务器日志中看到的errors 吗?
  • 请也添加appium服务器日志。
  • @AmitJain 我在服务器日志中没有看到任何错误标签,但我会分享它。但是,请问如何在这里分享errors

标签: appium appium-android


【解决方案1】:

您引用的 text 获取 postTest 文本将始终返回与以前相同的文本,因为在文本更新后您没有再次找到文本视图。

为确保您下次获得更新后的文本,您必须再次重新找到相同的元素,然后对其执行getText

试试这个并检查。它应该可以工作。

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2013-05-24
    • 2016-12-23
    • 2018-04-29
    • 2016-11-20
    • 1970-01-01
    相关资源
    最近更新 更多