2017-03-10 29 views
0

下面是我试图自动化的场景: 将链接的所有数值填入Selenium Weblist &中,然后执行添加操作,稍后验证计数总和是否匹配一个固定的数字。动态添加和使用外部循环变量 - Selenium

的问题是,数值链接返回括号例如吞噬的数:(20)(35)(16)(15)

我需要第一修剪这些托架&只获取数字&然后执行加入即:20 + 35 + 16 + 15

后,我需要在总反对主张的数量,即:Assert.assertequals(总和,'86' )

List<WebElement> lists=driver.findElements(By.cssSelector("span.ndocs")); 
     for (int i=0; i<lists.size();){ 

      String trimmed_value=lists.get(i).getText(); 
      trimmed_value=lists.get(i).getText().trim().substring(trimmed_value.indexOf("(") + 1); 
      trimmed_value=lists.get(i).getText().trim().substring(0, trimmed_value.indexOf(")")); 
      System.out.println(trimmed_value); 
      int numerical_value = Integer.parseInt(trimmed_value); 
      i++; 
     } 

直到现在我能够获取元素,迭代它们&能够去除大括号&得到的数字,我坚持如何执行加法运算&然后做一个断言的计数。 任何帮助将在这里非常感谢。

回答

1

尝试使用下面的代码。

在方法外部初始化一个变量并向其添加每个trimmed_value,如下所述。

进口的assertEquals(进口静态org.junit.Assert.assertEquals)

int expected_value=86; 
int numerical_value=0; 
List<WebElement> lists = driver.findElements(By.cssSelector("span.ndocs")); 

    for (int i = 0; i < lists.size();) { 
      String trimmed_value = lists.get(i).getText(); 
      trimmed_value = lists.get(i).getText().trim().substring(trimmed_value.indexOf("(") + 1); 
      trimmed_value = lists.get(i).getText().trim().substring(0, trimmed_value.indexOf(")")); 
      System.out.println(trimmed_value); 
      numerical_value =numerical_value+Integer.parseInt(trimmed_value); 
      i++; 
     } 
assertEquals(expected_value, numerical_value);