1

This code for an element to click using JavaScript Executor

((JavascriptExecutor) driver).executeScript("arguments[0].click()", driver.findElement(By.linkText("Update")));

But I am creating List<WebElement> for an element

List<WebElement> text = driver.findElements(By.className("btnstyle greenbtn"));
text.get(1).click();

Is possible JavaScript Executor for web list element to click according to index value.

3 Answers 3

1

Yes it is possible:

Easiest way is to make a function and pass your element:

public void clickJS(WebElement we) {
    JavascriptExecutor executor = (JavascriptExecutor) driver;
    executor.executeScript("arguments[0].click();", we);
}

Pass your web element like clickJS(text.get(1)).

OR you can use it directly:

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", text.get(0));
executor.executeScript("arguments[0].click();", text.get(1));
executor.executeScript("arguments[0].click();", text.get(2));

OR like:

JavascriptExecutor executor = (JavascriptExecutor) driver;
for(WebElement we:text){
executor.executeScript("arguments[0].click();", we);
}

That being said, Using Javascript is NOT a great option, if you want to replicate exact human actions.

Sign up to request clarification or add additional context in comments.

Comments

0

Just replace driver.findElement(By.linkText("Update")) with text.get(1)

List<WebElement> text = driver.findElements(By.className("btnstyle greenbtn"));
((JavascriptExecutor) driver).executeScript("arguments[0].click()", text.get(1));

arguments[0] is receiving the WebElement you insert as parameter to the executeScript method.

Comments

0

You could write something like this :
WebElement we=driver.findelement(By.xpath("write your xpath of list element .."));

public void clickJS(WebElement we) {
    JavascriptExecutor executor = (JavascriptExecutor) driver;
    executor.executeScript("arguments[0].click();", we);
}

Comments

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.