簡體   English   中英

動態添加和使用外部變量進行循環-Selenium

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM