Selenium Webdriver w/Java: localisation des éléments avec de multiples noms de classe avec une seule commande

Je suis en train d'utiliser le Sélénium (2.31.0, à l'aide de JavaSE 1.6 et IE9) de trouver une série d'éléments sur une page. Ces éléments ont tous l'un des deux noms de classe, 'dataLabel" ou "dataLabelWide'. Actuellement, mon code recueille ces éléments dans deux ArrayLists, un pour chaque nom de classe, puis les convertit les tableaux et les combine en un seul tableau. Cette méthode, cependant, énumère les éléments de commande, et j'en ai besoin pour être laissé dans le même ordre qu'ils sont trouvés dans le HTML de la page source.

Susmentionnés section de mon code ressemble à ceci (avec les commentaires ajoutés pour l'explication):

//Application runs on WebDriver d, an InternetExplorerDriver.
//After navigating to the page in question...

List<WebElement> labels = d.findElements(By.className("dataLabel"));
List<WebElement> wLabels = d.findElements(By.className("dataLabelWide"));
//Locates the elements of either type by their respective class name.

WebElement[] labelsArray = labels.toArray(new WebElement[labels.size()]);
WebElement[] wLabelsArray = wLabels.toArray(new WebElement[wLabels.size()]);
//Converts each ArrayList to an array.

List<WebElement> allLabels = new ArrayList<WebElement>();
//Creates an ArrayList to hold all elements from both arrays.

for(int a = 0; a < labelsArray.length; a++) {
    allLabels.add(labelsArray[a]);
}
for(int b = 0; b < wLabelsArray.length; b++) {
    allLabels.add(wLabelsArray[b]);
}
//Adds elements of both arrays to unified ArrayList, one by one.

WebElement[] allLabelsArray = allLabels.toArray(new WebElement[allLabels.size()]);
//Finally converts unified ArrayList into array usable for test purposes.
//Far too complicated (obviously), and elements end up out-of-order in array.

Je pense que la solution la plus efficace serait de trouver d'éléments, soit avec le nom de classe, pour qu'ils puissent être inclus dans une seule liste/tableau tout de suite. J'ai fait quelques recherches sur mon propre, mais je n'ai pas trouvé de concluant des idées sur comment je pourrais gérer cette tâche. Si il ya une façon de le faire, s'il vous plaît dites-moi à ce sujet.

OriginalL'auteur Will R. | 2013-04-18