2016-07-04 3 views
0

Я хочу создать список WebElement из массива String с помощью Findby в Selenium.Создайте массив WebElement из массива строк

Мой массив строк имеет следующее значение:

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

И я зацикливание этот массив строк, чтобы создать список 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); 
} 
Смежные вопросы