Java 使用@AndroidFindBy使用多个appPackage为android运行appium测试
我正在将android apk的appPackage从com.mycurrentpackage更改为com.myfuturepackage 我将元素的所有ID定义为 com.mycurrentpackage:id/elementID 目前我发现元素为 @AndroidFindBy(id=“com.mycurrentpackage:id/startup\u text1”) @缓存查找 私人移动设备启动_text1 我希望能够动态地更改它。所以我定义了一个静态变量appPackage 这是构造函数的一部分 appPackage=driver.getCapabilities().getCapability(“appPackage”).toString() PageFactory.initElements(新的AppiumFieldDecorator(this.driver,30,TimeUnit.SECONDS),this) 正如您所看到的,在初始化元素之前已经定义了appPackage 但是当我这样做的时候 @AndroidFindBy(id=appPackage+“:id/startup_text1”) @缓存查找 私人移动设备启动_text1 编译时说 错误:(42,35)java:属性值必须为常量 还有别的方法吗?我也可以用吗Java 使用@AndroidFindBy使用多个appPackage为android运行appium测试,java,android,selenium-webdriver,appium,Java,Android,Selenium Webdriver,Appium,我正在将android apk的appPackage从com.mycurrentpackage更改为com.myfuturepackage 我将元素的所有ID定义为 com.mycurrentpackage:id/elementID 目前我发现元素为 @AndroidFindBy(id=“com.mycurrentpackage:id/startup\u text1”) @缓存查找 私人移动设备启动_text1 我希望能够动态地更改它。所以我定义了一个静态变量appPackage 这是构造函数的
@AndroidFindBys({
@AndroidFindBy(id = "com.mycurrentpackage:id/startup_text1"),
@AndroidFindBy(id = "com.futurepackage:id/startup_text1")
})
@CacheLookup
private MobileElement startup_text1
当我使用这个时,加载页面需要很长时间
我需要把它列为
private List<MobileElement> startup_text1
私有列表启动\u text1
将包名作为变量的想法是正确的,但必须是最终的:
public static final String appPackage = "com.mycurrentpackage";
现在您可以使用:
@AndroidFindBy(id = appPackage+":id/startup_text1")