我尝试使用appium来测试第三方应用。在检查屏幕上是否存在元素时,appium无法找到该元素,即使它出现在屏幕上也是如此。
尝试以下事项作为根本原因的一部分:
1.使用Appium驱动器getpageSource()获取页面xml层次结构。这将返回上一个屏幕的xml转储
2.使用Android的uiautomator转储获取页面xml层次结构。这也与appium输出相同。
其他观察:
这种行为不一致。有时,找到元素。在其他时候,它不是。
2.当我尝试通过层次结构查看器检查层次结构时,xml转储是当前页面而不是前一页面。这几乎表明层次结构查看器以与uiautomator不同的方式获取xml转储。
有关我如何解决这个问题的任何线索?
谢谢, Aarthi
答案 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 ")));