ScrollTo返回并返回错误,即使该元素在该位置也是可单击的

时间:2019-01-22 15:06:12

标签: java selenium

我正在抓取一个网站的数据,该数据需要我向下滚动,然后单击下一步按钮进入新页面。下面是我的代码:

WebElement next = driver.findElement(By.cssSelector("li.ng-scope[translate='next']"));
        row = (ArrayList<WebElement>) driver.findElements(By.cssSelector(".event-row-container.ng-scope"));
        ((JavascriptExecutor) driver).executeScript("window.scrollTo(0,"+next.getLocation().y+")");
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


        WebDriverWait wait = new WebDriverWait(driver,10);

        wait.until(ExpectedConditions.elementToBeClickable(next)).click();
            next.click();

我最终遇到以下错误:

  

线程“主”中的异常org.openqa.selenium.WebDriverException:   未知错误:元素...不可点击   (360,14)。其他元素将获得点击:...(会话信息:chrome = 71.0.3578.98)   (驱动程序信息:chromedriver = 2.42.591059   (a3d9684d10d61aa0c45f6723b327283be1ebaad8),平台= Mac OS X 10.13.6   x86_64)(警告:服务器未提供任何堆栈跟踪   信息)

我要抓取的网站是:https://www.sportpesa.co.ke/?sportId=1&section=today

1 个答案:

答案 0 :(得分:0)

硒具有内置的滚动功能,如果您使用

WebElement element = driver.findElement(By.cssSelector("li.ng-scope[translate='next']"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();

提供标识符正确的