我在JUnit Eclipse中使用Selenium Web Driver。我有这样的课程:
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.CacheLookup;
import org.openqa.selenium.support.FindBy;
//Path
public class Path {
int i;
String[]path_name;
@FindBy(linkText=path_name[i])
@CacheLookup
private WebElement path;
public void path(int number,String[]path_name){
for (i=1; i<number; i++){
path.findElement(By.linkText(path_name[i])).click();
}
}
}
逐个打开定义的链接数量。这个类与我的主测试分开。要调用类Path,我使用页面对象(页面工厂)。 这是我主要测试中的代码:
Path path= PageFactory.initElements(driver, Path.class);
path.path ( 2, new String[]{ "First", "New text"});
但我在第The value for annotation attribute FindBy.linkText must be a constant expression
行收到错误@FindBy(linkText=path_name[i])
。我以什么方式将我的数组声明为页面对象?或者也许有另一种方法从类Path调用方法路径?
如果删除这部分代码,则会出现desapiared错误:
@FindBy(LINKTEXT =路径名[I])
@CacheLookup
但在这种情况下,JUnit找不到数组的元素。