从字符串数组创建WebElement数组

时间:2016-07-04 18:13:13

标签: java selenium

我想通过在Selenium中使用Findby从String数组创建一个WebElement列表。

My String数组具有以下值:

String [] s1 = {"Sale Condo", "Rent Condo"};

我正在循环这个String数组,通过这样做来创建一个WebElement列表:

List<WebElement> allElem=new ArrayList<WebElement>();
for (String s: s1){
    @FindBy(linkText=s)
    allElem.add();
}

我无法做到。请帮助我如何实现这一目标。

2 个答案:

答案 0 :(得分:1)

您确定不会抛出编译错误。

你可以使用这样的东西

List<WebElement> allElem=new ArrayList<WebElement>();
for (String s: s1){
    allElem.add(driver.findElement(By.linkText(s)));
}

答案 1 :(得分:0)

我不是100%确定这是否也适用于java,但是对于C#,你不能这样做,因为Using属性期望[FindsBy(How = How.Id, Using = "elementID")] private IWebElement Element {get; set;} 的常量值。 意味着以下代码正常工作:

string idOfTheElement = "elementID";
[FindsBy(How = How.Id, Using = idOfTheElement)]
private IWebElement Element {get; set;}

但是这个错误了:

string[] array = new string[] {"id1", "id2"};
List<IWebElement> allElem = new List<IWebElement>();
foreach(var s in array)
{
    var element = driver.FindElement(By.Id(s));
    allElem.Add(element);
} 

但是你可以通过使用getter实现这一点:

{{1}}