首页 文章

无法使用Selenium WebDriver和Java滚动特定的DIV

提问于
浏览
1

WebDriver无法找到浏览器可见区域中不可见的元素 . 为了使WebDri可以查看WebElement,我们需要在浏览器的视图中显示该元素以向下滚动特定的div!我尝试了很多,没有帮助我 . 因此它仍然没有工作 . 好心提醒

我的代码:

((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//*[@id='lobbyMain']/div[3]/div[2]/ul/li[1]/div[1]/h3/a"))).onclick;

2 回答

  • 0

    看滚动的基本方法是:

    Webelement element = driver.findElement(By.xpath("//*[@id='lobbyMain']/div[3]/div[2]/ul/li[1]/div[1]/h3/a"))
    
    JavascriptExecutor js = (JavascriptExecutor) element;
        int yPosition = element.getLocation().getY();
    
        for (int second = 0;; second++) {
            if(second >=4){
                break;
            }
            ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,200)", ""); //y value '400' can be altered
            Thread.sleep(3000);
    

    您可以根据自己的方便来改变秒数 .

    或者只是参考下面的链接 . 它会对你有所帮助 .

    https://www.seleniumeasy.com/selenium-tutorials/scrolling-web-page-with-selenium-webdriver-using-java

    如果你仍然遇到问题,请回复我 . :-)

  • 0

    当您对元素执行单击时,Selenium将自动滚动到该元素 . 你可以简单地做:

    driver.findElement(By.xpath("//*[@id='lobbyMain']/div[3]/div[2]/ul/li[1]/div[1]/h3/a")).click()
    

    硒应该找到它,滚动到它并点击它 . 如果这不起作用,我有时会使用它来滚动:

    ((JavascriptExecutor) driver).executeScript(
                "scroll(" + element.getLocation().getX() + "," + element.getLocation().getY() + ")");
    

相关问题