java web类名_带有Java的Selenium Webdriver:使用一个命令定位具有多个类名的元素

我正在尝试使用Selenium(2.31.0,使用JavaSE 1.6和IE9)在页面上查找一系列元素.这些元素都有两个类名称之一,’dataLabel’或’dataLabelWide’.目前,我的代码在两个单独的ArrayLists中收集这些元素,每个类名称一个,然后将它们转换为数组并将它们组合成一个数组.但是,此方法不按顺序列出元素,我需要将它们保留为与页面的HTML源中找到的顺序相同的顺序.

我的代码的上述部分看起来像这样(添加了注释以供解释):

// Application runs on WebDriver d, an InternetExplorerDriver.

// After navigating to the page in question...

List labels = d.findElements(By.className("dataLabel"));

List 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 allLabels = new ArrayList();

// 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.

我认为最有效的解决方案是找到具有类名的元素,以便它们立即包含在单个列表/数组中.我自己做了一些搜索,但是我没有找到关于如何管理这项任务的任何结论性的想法.如果有办法做到这一点,请告诉我有关它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值