我将 Selenium Web 驱动程序与 JUnit Eclipse 一起使用。我有这样的课:
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= 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])
。我应该以什么方式将我的数组声明为页面对象?或者也许还有另一种方法可以从类路径中调用方法路径?如果我删除这部分代码,则会出现错误:@FindBy(linkText=path_name[i]) @CacheLookup 但在这种情况下,JUnit 找不到数组的元素。