2012-07-19 36 views
0

我使用Selenium Web Driver和JUnit Eclipse。我有这样的类:如何在Selenium WebDriver的页面对象(PageFactory)中使用数组?

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])。我用什么方式将我的数组声明为页面对象?或者也许有另一种方法从类Path调用方法路径? 如果我删除这部分代码,则会导致错误消失: @FindBy(linkText = path_name [i]) @CacheLookup 但是在这种情况下,JUnit找不到数组的元素。

+0

可能重复:http://stackoverflow.com/questions/8008138/selenium-webdriver-and-pagefactory-initialize- listwebelement元素 – 2012-07-22 10:43:02

回答

0

注释@FindBys是你在找什么。它返回一个列表。

如果你想要一个数组,你可以从列表转换或使用this answear ...

相关问题