Appium android按钮奇怪的工作

时间:2018-01-11 13:13:53

标签: java android testing appium

我在测试用于在线购物的应用时遇到问题。我注意到应用程序工作的所有按钮,但我有系统按钮的问题(看图片)。我正在使用按钮UiAutomatorViewer

在图片中我正在尝试将产品添加到购物车但是当我点击按钮“Dodaj”(意味着添加)时窗口关闭但是应用程序中有任何操作,产品应该添加到购物车。我手动测试了这个应用程序,一切正常。

我试图以多种方式操作按钮,但仍然没有。有谁知道如何解决它?对我来说测试是非常重要的功能。

enter image description here

public class Product extends MainPage {
private AndroidDriver<AndroidElement> driver;

@FindBy(id = "com.mec.leroy:id/product_add_to_cart")
private WebElement addToCart;

@FindBy(xpath = "//android.widget.Button[@index='1']") //problem with button
private WebElement buttonAdd;

@FindBy(id = "com.mec.leroy:id/product_name")
private WebElement productName;

public Product(AndroidDriver driver) {
    super(driver);
    this.driver = driver;
}


public Product addProduct() throws InterruptedException {
    driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()).scrollIntoView(text(\"do koszyka\"));");
    addToCart.click();
    buttonAdd.click();
    Thread.sleep(5000);
    return new Product(driver);
}

public boolean productName() throws InterruptedException {
    Thread.sleep(2000);
    try {
        productName.getText();
        return true;
    } catch (ElementNotVisibleException e) {
        return false;
    }
}

public class Connector {
public AndroidDriver Settings() throws IOException, InterruptedException {

    runAppium();
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "33004db396a6c2d1"); // nazwa urządzenia
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");

    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
    capabilities.setCapability("noRest", "true");
    capabilities.setCapability("fullReset", "false");

    // capabilities.setCapability("useKeystore", "true");
    //uruchomienie aplikacji z poziomu telefonu
    capabilities.setCapability("appPackage", "com.mec.leroy");
    capabilities.setCapability("appActivity", "com.mec.leroy.main.activity.MainActivity");

    //inicjalizacja połączenia z Appium Server

    AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
    return driver;

}

1 个答案:

答案 0 :(得分:0)

您正在使用UiAutomatorViewer(使用旧的 UiAutomator ),但在您的测试中,您提供 UiAutomator2 :知道这些框架构建快照xml很重要以不同的方式,所以您的定位器可能不正确。

我建议您尝试使用官方appium-desktop检查并与您的按钮互动:

  1. 安装&amp;发布它
  2. 通过appium-desktop运行服务器
  3. 设置与代码中相同的功能,创建新会话
  4. 现在,您可以检查元素并尝试从检查器中单击按钮。