2017-03-10 67 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);