如何使用selenium webdriver从Xpath中提取数值

时间:2016-04-13 19:07:40

标签: java selenium xpath selenium-webdriver

这是包含我需要测试的元素的代码。

function initMap() {
  var myLatLng = {lat:40.4917507, lng:-74.2971267};
  var map = new google.maps.Map(document.getElementById('map-canvas'),{
  center: myLatLng,
  zoom: 15
  });
  var marker = new google.maps.Marker({
    position: myLatLng,
    map:map,
    title:"abc"
  });

  google.maps.event.addDomListener(window, "resize", function(){
    var center=map.getCenter();
    google.maps.event.trigger(map, "resize");
    map.setCenter(center);
  })
}

顶部元素告诉我们总共有104个警报。下面的每个元素都是某种类型的警报。我需要提取所有警报子类别元素(44,3,34)中的值,并断言它们都加起来为104.显然在这种情况下它们不会。

1 个答案:

答案 0 :(得分:2)

正如您所看到的,您需要找到所有innerHtml divclass = count ng-binding的数字,因此首先您需要找到此类的所有元素,如下所示: -

int total = 0;
List<WebElement> totalDivs = driver.findElements(By.xpath("//div[@class='count ng-binding']"));

OR

List<WebElement> totalDivs = driver.findElements(By.className("count"));

获得所有WebElements后,您需要对其进行迭代并将其添加出来。

for(WebElement we : totalDivs){
    total += Integer.parseInt(we.getText());
}
System.out.println(total);

输出: -

81 // For this example.

希望它有所帮助!