[英]Dynamic addition & use of variable outside for loop- Selenium
下面是我要自動執行的方案:將鏈接的所有數字值放入Selenium Weblist中並執行加法,然后驗證計數總和是否與固定數字匹配。
問題是數字鏈接返回大括號中包含的數字:(20)(35)(16)(15)
我需要先修剪這些括號並僅獲取數字,然后執行加法,即:20 + 35 + 16 + 15
后來我需要對總數斷言,即:Assert.assertequals(sum,'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++;
}
到現在為止,我已經能夠獲取元素,對其進行迭代並能夠刪除花括號並獲取數字,但我仍然堅持如何執行加法運算,然后對計數進行斷言。 任何幫助將不勝感激。
嘗試使用以下代碼。
初始化方法外部的變量,並將每個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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.