问题描述
我正在使用 Java Selenium。我需要将字符串行 computeEngine.getMachineseries()
从我的 xpath 内的属性中放入。我该怎么做?
@FindBys({@FindBy(xpath = "//md-option//div[@class='md-text ng-binding'][contains(text(),'"+computeEngine.getMachineseries()+"')]")})
List<WebElement> seriesOptionNOne;
我不能使用上面的代码,因为这个错误:“属性值必须是常量”。我怎样才能以另一种方式做到这一点?
解决方法
您可以尝试以下解决方案:
String myString = computeEngine.getMachineSeries();
@FindBys({@FindBy(xpath = "//md-option//div[@class='md-text ng-binding'][contains(.,'"+ myString +"')]")})
List<WebElement> seriesOptionNOne;
,
不可能: https://stackoverflow.com/a/10636320/1387701
没有办法动态生成一个字符串 注解。编译器评估注释元数据 编译时的 RetentionPolicy.RUNTIME 注释,但是 GENERIC_GENERATED_NAME 直到运行时才知道。而且你不能用 为 RetentionPolicy.SOURCE 的注释生成的值 因为它们在编译时被丢弃,所以生成的那些 价值永远不会被知道。