匿名吐槽 appium 执行 case 的问题

匿名 · 2018年04月23日 · 最后由 匿名 回复于 2018年04月23日 · 1667 次阅读
public class DriverManager {

    public static ThreadLocal<AppiumDriver> driver = new ThreadLocal<>();

    public static AppiumDriver getDriver() {
        return driver.get();
    }

    public static void setWebDriver(AppiumDriver driver_) {
        driver.set(driver_);
    }
}


 public AppiumDriver<MobileElement> driver;


    public AppiumDriver<MobileElement> getDriver() {
        driver = AppiumDriverManager.getDriver();
        return driver;
    }

    @Test
    @Author(name = "AnsonLiao")
    @RetryCount(maxRetryCount = 2) public void testMethodHomePage3()
        throws InterruptedException, IOException {

        System.out.println(
            "ThreadName: " + Thread.currentThread().getName() + Thread.currentThread()
                .getStackTrace()[1].getClassName());
        getDriver().findElement(By.id("com.android2.calculator3:id/cling_dismiss")).click();
        new ScreenShotManager().captureScreenShot("LoginPage--1");
        getDriver().findElement(By.id("com.android2.calculator3:id/digit4")).click();
        getDriver().findElement(By.id("com.android2.calculator3:id/minus")).click();
        getDriver().findElement(By.id("com.android2.calculator3:id/digit9")).click();
        new ScreenShotManager().captureScreenShot("LoginPage");
        getDriver().findElement(By.id("com.android2.calculator3:id/equal")).click();
    }

在 github 上看到一个 appium 的测试框架,有个地方不太明白,每次对元素操作都要去获取一个 driver,最后获取的不是同一个 driver 吧?

共收到 4 条回复 时间 点赞

虽然没用过这个框架,但是既然你对 driver.get 方法有疑问,为什么不把 driver 的 session 打印出来看看是不是同一个呢?

为啥需要匿名呢?

匿名 回复

因为匿名有股神秘感

问题已解决,getDriver 的时候是从当前线程里取得 driver 所以是同一个 driver

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