Appium显式等待在混合应用程序上不起作用,无法找到Web视图元素

时间:2015-12-15 10:30:46

标签: java selenium webview appium hybrid-mobile-app

Appium驱动程序不等待识别混合应用程序中的元素并超时。然后测试失败。这是我的java代码来测试混合app.Here我使用了TestNG框架。首先,我切换到应用程序的Web上下文并进行显式等待直到元素可见。

@BeforeMethod          
public void Setup() throws MalformedURLException
{

    DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
    cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.example.touch");
    cap.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.example.touch.MainActivity");


    driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);

}

@Test
public void LoginTest() {

  java.util.Set<String> contextNames = driver.getContextHandles();


  for (String contextName : contextNames) {
    if (contextName.contains("WEBVIEW")){
     driver.context(contextName);
    }
  }

  try {
      System.out.println("uy");
      Thread.sleep(10000);
      } catch (InterruptedException e) {

      }


  WebDriverWait wait;
  wait = new WebDriverWait(driver,60);
  wait.until(ExpectedConditions.visibilityOf(driver.findElementByXPath("*[@id='login-page']####")));



  driver.findElementByXPath("//*[@id='login-page']####").sendKeys("abc");
  driver.findElementByXPath("//*[@id='login-page']####").sendKeys("xyz");
  driver.findElementByXPath("//*[@id='login-button']####").click();
 }

@AfterMethod
public void End() {

  driver.quit();
}

这是我在运行TestNG测试后从appium服务器获得的错误消息。

  

info:[debug] [BOOTSTRAP] [debug]使用带有contextId的XPATH查找* [@ id ='login-page'] / div [1] / div [5] / div / input:multiple:false   info:[debug] [BOOTSTRAP] [debug]返回结果:{“status”:7,“value”:“找不到使用提供的策略的元素。”}   info:[debug] 1527ms后未满足条件。计时。   info:[debug]响应客户端错误:{“status”:7,“value”:{“message”:“使用给定的搜索参数无法在页面上找到元素。”,“origValue”:“无法使用提供的策略找到元素。“},”sessionId“:”51df32dc-3fdf-4b84-95f2-dd020590b861“}   info:&lt; - POST / wd / hub / session / 51df32dc-3fdf-4b84-95f2-dd020590b861 / element 500 1527.819 ms - 230   信息: - &gt; DELETE / wd / hub / session / 51df32dc-3fdf-4b84-95f2-dd020590b861 {}

0 个答案:

没有答案