我正在將我的android apk的appPackage從com.mycurrentpackage更改爲com.myfuturepackage。使用@AndroidFindBy爲多個appPackage運行android appium測試
我有元素的所有ID定義爲
com.mycurrentpackage:id/elementID
目前我找到元素
@AndroidFindBy(id = "com.mycurrentpackage:id/startup_text1")
@CacheLookup
private MobileElement startup_text1;
我希望能夠動態地改變它。所以我定義了一個靜態變量appPackage。
這裏是構造
...
appPackage = driver.getCapabilities().getCapability("appPackage").toString();
PageFactory.initElements(new AppiumFieldDecorator(this.driver, 30, TimeUnit.SECONDS), this);
...
正如你可以看到appPackage正在初始化元素之前已經定義的一部分。
但是,當我做這種方式
@AndroidFindBy(id = appPackage+":id/startup_text1")
@CacheLookup
private MobileElement startup_text1;
在編譯時,它說
Error:(42, 35) java: attribute value must be constant
是否有任何其他方式做到這一點?