我希望能够在我的移动自动化套件中使用同一时间的多个方法。意味着每次我只调用Method并仅更新“ elementName”(AndroidElement)。

我试过了:

 public void waitForScreenToLoad(AndroidElement elementName){
        (new WebDriverWait(driver,30)).until(ExpectedConditions.presenceOfElementLocated(By.id(elementName.getId())));
    }


在我的测试中,我会这样称呼它

MessageCenterScreen message = new MessageCenterScreen(driver);

base.waitForScreenToLoad(message.addCardButton);


但是我的测试失败了,因为它找不到存在的元素。

我使用Page Factory模型来定位元素

   @FindBy(id = "widget_loading_fab_button")
        public AndroidElement addCardButton;


这样,它可以正常工作,但是问题是:我不想一直重复我的方法。

public void waitForCardManagementScreenToLoad() {
        (new WebDriverWait(driver, 30)).until(ExpectedConditions.presenceOfElementLocated(By.id("widget_loading_fab_button")));
    }

最佳答案

  public void waitForScreenToLoad(AndroidElement element){
        (new WebDriverWait(driver,30)).until(ExpectedConditions.visibilityOf(element));
    }


使用ExpectedConditions.visibilityOf

08-04 04:56