2016-01-20 5 views

ответ

0

Предполагая, что вы знаете, количество элементов в списке, используйте интерфейс List в Java:

List<String> list = new ArrayList<String>(); 

for(j=0;j<weblist.size();J++){ 
    list.add(weblist.get(j).findElement(By.className("accordion-toggle")).getText()) 
} 
+0

Почему не 'list.size()'? вместо N. – Guy

+0

@guy, вы правы. 'weblist.size() 'может заменить' N'. Часть кода, о которой идет речь, не является полной, поэтому я не хотел делать больше предположений. обновил ответ. – parishodak

0

Вместо использования findElement вы должны использовать findElements метод селеном WebDriver. Он будет напрямую возвращать список веб-элементов. Использовать по функциям селена создать пользовательский метод getBy, который будет использовать по абстрактному классу.

public List<WebElement> findElements(String locator, long... timeOut) { 
    try { 
     if (timeOut.length == 1 && timeOut[0] == 0) { 
      return driver.findElements(getBy(locator)); 
     } else if (timeOut.length == 1 && timeOut[0] > 0) { 
      waitForPresent(locator, timeOut[0]); 
     } else { 
      waitForPresent(locator); 
     } 
    } catch (Exception e) { 

    } 
    return driver.findElements(getBy(locator)); 
} 

String xPath = "xpath=//*[@text='some text']"; 
//String xPath = "name='some text'"; 
//String xPath = "id=xxxx"; 

private By getBy(String locator) { 
    locator = getProps().getString(locator, locator); 
    String[] parts = locator.split("=", 2); 
    By by = null; 
    switch (parts[0].trim()) { 
    case "xpath": 
     by = By.xpath(parts[1]); 
     break; 
    case "name": 
     by = By.name(parts[1]); 
     break; 
    case "link": 
     by = By.linkText(parts[1]); 
     break; 
    case "id": 
     by = By.id(parts[1]); 
     break; 
    case "css": 
     by = By.cssSelector(parts[1]); 
     break; 
    default: 
     throw new RuntimeException("invalid locator"); 
    } 
    return by; 
} 
1

Вы можете попробовать, как этот

//to catch all web elements into list 
    List<WebElement> myList=driver.findElements(By.className("accordion-toggle")); 

    //myList contains all the web elements 
    //if you want to get all elements text into array list 
    List<String> all_elements_text=new ArrayList<>(); 

    for(int i=0; i<myList.size(); i++){ 

     //loading text of each element in to array all_elements_text 
     all_elements_text.add(myList.get(i).getText()); 

     //to print directly 
     System.out.println(myList.get(i).getText()); 

    } 

Спасибо

0

с помощью weblist.size() помогает, когда конечный результат это неизвестно. Таким образом, помогите нам создать список массивов, не давая определенного конца.

for(j=0;j<weblist.size();J++){ 
Смежные вопросы