Appium 用 appium 框架时 每一个动作后面都要加延迟吗

陈晖 · 2014年07月25日 · 最后由 Anson 回复于 2014年07月25日 · 1899 次阅读

小弟最近才开始接触 appium 写测试用例时,发现从一个页面切换到另一个页面时 不加延迟 就出现找不到页面元素的错误 ,我用的是 sleep ,但感觉不太好 大家都有什么方法啊 另外感觉@driver.manage.timeout.implicit_wait 没用啊

共收到 6 条回复 时间 点赞

selenium 有 waitforelement 的方法,想办法把这个方法封装成 appium 能用。
然后在定义一个 waittime 变量,测试脚本再读取这个 waittime 变量。

waittime=10

try:
    element = WebDriverWait(driver, waittime).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

下面是 java 代码。

private boolean waitElementToBeDisplayed(final WebElement element) {
    boolean wait = false;
    if (element == null)
        return wait;
    try {
        wait = new WebDriverWait(driver, Integer.parseInt(Config
                .getConfig("waitTime")))
                .until(new ExpectedCondition<Boolean>() {
                    public Boolean apply(WebDriver d) {
                        return element.isDisplayed();
                    }
                });
    } catch (Exception e) {
        System.out.println(element.toString() + " is not displayed");
    }
    return wait;
}

好 ,我用的是 ruby 我试试 谢谢

webdriverwait 就挺好用

学习!

#1 楼 @532589730 您好 ruby 里好像没有这个方法 其次元素的获取是通过 xpath 这样会不会得到错误的元素呢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册