使用Selenium Java在Instagram中单击“关注”按钮

时间:2020-06-11 03:02:53

标签: java css selenium xpath

enter image description here

您好,尝试使用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);

        }

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为此论点"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();
}

顺便说一句,还有一种方法可以为每个循环列表使用循环列表,如下所示:

List<WebElement> clickOnFollowButton = driver.findElements(By.xpath("//button[contains(text(),'Follow')]"));
for(WebElement element: clickOnFollowButton) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
    element.click();
}