0

我将 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 找不到数组的元素。

4

1 回答 1

0

注释@FindBys就是您要查找的内容。它返回一个列表。

如果你想要一个数组,你可以从列表中转换或使用这个答案...

于 2012-07-22T10:45:07.603 回答