嗨,尝试使用 java 自动点击按钮,但在 for 循环中使用 javascriptexecutor 时遇到问题。这是我的代码:
List<WebElement>clickOnFollowButton = driver.findElements(By.xpath("//button[contains(text(),'Follow')]"));
for (int i = 0; i < clickOnFollowButton.size() ; i++) {
driver.findElements(By.xpath("//button[contains(text(),'Follow')]")).get(i).click();
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", clickOnFollowButton);
}
非常感谢您的帮助。
最佳答案
我认为这个参数“arguments[0].scrollIntoView();”
应该在.click
之前。
并且您必须先将列表中的每个成员设置为 WebElement
变量,然后再由 JavascriptExecutor
执行它,然后单击它:
for (int i = 0; i < clickOnFollowButton.size() ; i++) {
WebElement element = driver.findElements(By.xpath("//button[contains(text(),'Follow')]")).get(i);
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
element.click();
}
顺便说一句,还有另一种方法可以使用 foreach 来执行循环列表,如下所示:
List<WebElement> clickOnFollowButton = driver.findElements(By.xpath("//button[contains(text(),'Follow')]"));
for(WebElement element: clickOnFollowButton) {
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
element.click();
}
关于java - 使用 Selenium Java 单击 Instagram 中的关注按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62316362/