2016-07-04 53 views
0

我想通過在Selenium中使用Findby從字符串數組創建WebElement列表。從字符串數組創建WebElement數組

我的字符串數組有此值:

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

而且我循環這個String數組通過這樣做是爲了創造WebElement列表:

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

我不能做到這一點。請幫助我如何做到這一點。

回答

1

你確定沒有拋出編譯器錯誤。

您可以使用類似這樣

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

我不是100%肯定,如果這是適用於Java的太多,但對於C#你不能做這種方式,因爲FindsBy[]屬性期待一個常數值爲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); 
}