如何使用Appium在开始和testing期间“等待活动”?

我开始使用appium已经安装的应用程序。

我的驱动程序初始化后。 如何进行投票等待直到显示某个活动?

我看到只有这样才能在启动时等待活动

cap.setCapability("app-wait-activity", "activity-to-wait-for");

有没有其他的方法? 如何在不初始化的时候等待另一个特定的活动。 说按一下button后点击?

只是sleep x seconds

  • 如何旋转活动,我的意思是:使用Espresso改变屏幕方向?
  • 用EspressotestingViewPager。 如何执行一个项目的button的动作?
  • 使用Espresso测试ViewPager。 如何对项目的按钮执行操作?
  • 在运行testing之前,android espressologin一次
  • 是否有可能使用espresso进行截图并testing像素值?
  • Espressotesting错误:AppNotIdleException
  • 咖啡:如何做自定义滑动,例如swipeTop或swipeBottom
  • 无法让Robotium在Android Studio中运行
  • 具体活动意味着正在显示某些特定元素。 我使用下面的代码等待屏幕上的某个元素:

     WebDriverWait wait = new WebDriverWait(driver, 30); wait.until(ExpectedConditions.elementToBeClickable(By .xpath("//android.widget.Button[contains(@text, 'Log In')]"))); 

    要么:

     WebDriverWait wait = new WebDriverWait(driver, 30); wait.until(ExpectedConditions.presenceOfElementLocated(By .xpath("//android.widget.TextView[contains(@resource-id, 'action_bar_title')]"))); 

    我build议你使用WebDriverWait。 Thread.sleep()不是在testing脚本中使用的好方法

    你也可以使用以下内容:

     getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

    要不就:

     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

    或者像下面这样的东西:

     Thread.sleep(5000); 
     WebDriverWait wait = new WebDriverWait(driver,20); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("about_me"))); 

    如果你想详细了解如何在Appium中使用隐式和显式的等待,那么请访问这个教程

     long startTime = System.currentTimeMillis(); while(System.currentTimeMillis() - startTime < Time_Out) if (getDriver().currentActivity().equals(activity)) break; 

    您可以使用以下代码每秒钟轮询当前活动。 如果你想减less轮询时间,你可以减less睡眠时间到500,并wait*2

     public void waitForActivity(String desiredActivity, int wait) throws InterruptedException { int counter = 0; do { Thread.sleep(1000); counter++; } while(driver.currentActivity().contains(desiredActivity) && (counter<=wait)); log("Activity appeared :" + driver.currentActivity(), true); } 

    它可以通过不同的方式使用元素来完成。 Webdriver提供“WebDriverWait”,“ExpectedCondition”类来实现这一点。 ExpectedConditions类提供了一些预定义的条件来等待元素:

    1. elementSelectionStateToBe:元素状态是select。
    2. elementToBeClickable:元素存在并可点击。
    3. elementToBeSelected:元素被选中
    4. frameToBeAvailableAndSwitchToIt:框架可用和框架
    5. select。 invisibilityOfElementLocated:一个元素是不可见的
    6. presenceOfAllElementsLocatedBy:位于的当前元素。
    7. 刷新:等待页面刷新时的特定情况。
    8. textToBePresentInElement:特定元素上的文本
    9. textToBePresentInElementValue:和元素值存在的一个
      特定元素。 还有更多你可以学习更多的方法来实现隐式和显式的等待,通过这个urlhttp://roadtoautomation.blogspot.in/2013/10/webdriver-implicit-and-explicit-wait.html

    希望能帮助到你…