uiautomator dump返回上一屏幕的转储

时间:2016-02-01 07:02:38

标签: android appium android-testing uiautomator

我尝试使用appium来测试第三方应用。在检查屏幕上是否存在元素时,appium无法找到该元素,即使它出现在屏幕上也是如此。

尝试以下事项作为根本原因的一部分:
1.使用Appium驱动器getpageSource()获取页面xml层次结构。这将返回上一个屏幕的xml转储 2.使用Android的uiautomator转储获取页面xml层次结构。这也与appium输出相同。

其他观察:
这种行为不一致。有时,找到元素。在其他时候,它不是。
2.当我尝试通过层次结构查看器检查层次结构时,xml转储是当前页面而不是前一页面。这几乎表明层次结构查看器以与uiautomator不同的方式获取xml转储。

有关我如何解决这个问题的任何线索?

谢谢, Aarthi

2 个答案:

答案 0 :(得分:1)

如果您使用UiDevice进行测试, 只需切换setCompressedLayoutHierarchy()

我不知道与这个问题有关的根本原因──抛弃一个与前一个相同的原因。但是,当切换它时,它将检索明显的当前视图层次结构。

答案 1 :(得分:0)

尝试使用隐式或显式等待,因为它们是间歇性的

<强>隐式

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

<强>显

WebElement Elementid = (new WebDriverWait(driver, 10))
  .until(ExpectedConditions.presenceOfElementLocated(By.id("Elementid ")));