如何用硒向下滚动?

时间:2018-10-25 07:36:10

标签: java selenium xpath css-selectors webdriverwait

this页面上,我需要单击链接 隐私权政策 (打开一个新对话框),并且必须滚动 ,使用Selenium和Java。

这是我尝试过的:

WebElement element = driver.findElement(By.xpath("/html/body/div[2]"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);

它不起作用。 滚动背景页面,而不是活动对话框。

3 个答案:

答案 0 :(得分:1)

您要滚动的div具有唯一的ID,您需要首先获取对其的引用:

WebElement element = driver.findElement(By.id('document-content'));

然后,您可以在该隐私政策div中找到最后一个孩子:

List<WebElement> children = element.findElements(By.tagName("div"));
assertTrue(children.size() > 0);
WebElement elementToScrollTo = children.get(children.size()-1);

您现在可以滚动到elementToScrollTo

答案 1 :(得分:0)

您可以滚动到相对于平面像素数的位置:

JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("window.scrollBy(0,450)", "");

答案 2 :(得分:0)

要在链接上使用文本隐私权政策调用click(),您只需为所需的引入 WebDriverWait >可以点击的元素,然后再次诱使 WebDriverWait 使所需的元素可见,然后滚动查看,您可以使用以下解决方案:

  • 代码块:

    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class insly_Privacy_Policy {
    
        public static void main(String[] args) {
    
            System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
            WebDriver driver=new FirefoxDriver();
            driver.get("https://signup.insly.com/signup");
            new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("privacy policy"))).click();
            WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated((By.xpath("//div[@id='document-content']//following::div[contains(.,'Revision')]"))));
            ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
        }
    }
    
  • 浏览器快照:

revision