如何使用uiautomator2通过appium验证Toast消息?

时间:2017-04-19 07:18:15

标签: java appium

我已经编写了一个应用程序,其中包含一个按钮,它将显示一个Toast消息。

public void onClickShowToast(View view) {
    Toast.makeText(getBaseContext(), "Change port successfully", Toast.LENGTH_LONG).show();
}

然后,我用appium编写一个测试用例尝试验证它。

//APPIUM Version: 1.6.3;
//JAVA: 1.8;
//JAVA Client: 5.0.0;
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);

driver.findElementByXPath("//*[contains(@text,'Button')]").click();
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[contains(@text, 'port')]")))

但是,结果是失败的:

  

org.openqa.selenium.TimeoutException:预期的条件失败:   等待位于以下位置的元素的存在:By.xpath:   // *包含(@text,'port')

2 个答案:

答案 0 :(得分:0)

诀窍是找到正确的 XPath 。我使用以下方法之一管理了这个:

//android.widget.Toast
//android.widget.Toast[@text='toast text']

答案 1 :(得分:-1)

你可以像这样捕捉吐司:

mysql_query('SELECT * FROM tabel1 as t1 inner join table2 as t2 on t1.id=t2.id WHERE t1.id=2');

Here是我的解决方案。