1

Please Find my code, its not Returning the Array object value, its return only one array object

public String[] verify_userRole(String[] Expected_role) {
        String[] actual_role = new String[4];
        String first;
        WebElement role_table = driver.findElement(By
                .xpath("//*[@id='tblListView']/tbody[1]"));
        List<WebElement> allRows = role_table.findElements(By.tagName("tr"));

        for (WebElement row : allRows) {
            List<WebElement> cells = row.findElements(By.tagName("td"));

            for (WebElement cell : cells) {
                first = cell.getText().toString();
                actual_role = new String[] {first};

                }
        }
        return actual_role;
    }

variable first its contain Four values ("name","name1","name2","name3") after convert this string value into an array (actual_role) then its return only one value ("name")

Please clarify what is the Problem for the above code

2 Answers 2

3

You re-initialize string array on every step in your loop.

You should do it only once.

   ArrayList<String> actual_role = new ArrayList<String>( )
   for (WebElement row : allRows) {
        List<WebElement> cells = row.findElements(By.tagName("td"));

        for (WebElement cell : cells) {
            first = cell.getText().toString();
            actual_role.add(first);

        }
    }

    return (String[]) actual_role.toArray( new String[ actual_role.size() ] );

BTW, I've converted your example to use intermediary ArrayList, because you don't know the actual data size, and it's error-prone to reinitialize arrays on the fly.

If the signature of the method, you are implementing, is not dictated by external framework, I suggest you use List<String> as a return type instead of String[].

0

You always instantiate your array inside the loop:

actual_role = new String[] {first};

try instead:

actual_role[i] = first;

When i is the current index.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.