1

我正在做一个自动硒测试,它有一个固定位置的标题。

    div#floatingDiv {
        position: fixed;
        background-color: #000000;
        color:white;            
    }

当尝试使用 Firefox Web 驱动程序自动执行 selenium 测试时,此浮动标头会妨碍您。

似乎正在发生的事情是,当 selenium 单击当前不在屏幕上的元素时,Firefox Web 驱动程序会滚动页面,使其正在访问的按钮位于页面顶部,然后单击该元素。但是,由于标题具有固定位置,因此元素隐藏在标题后面并且测试失败。

有没有办法直接控制硒中的滚动条?

对这个问题做了更多的实验后,我注意到这个问题只发生在访问页面底部的按钮而不是输入字段时。

4

2 回答 2

1

尝试以下未经测试的 Java 代码,您需要对滚动的位置和滚动量进行一些调整

WebElement input = (Locatable) driver.findElement(By.xpath("some path to your input"));
int y = (Locatable)input .getCoordinates().getLocationOnScreen().getY();
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,"+y+");");
input.click();
于 2013-05-13T21:46:20.490 回答
1

您需要使用 scrollTo 方法,而不是使用 scroll by menthod。

public void scrollToElement(By by) {
    Locatable element = (Locatable) selenium.findElement(by);
    Point p= element.getCoordinates().getLocationOnScreen();
    JavascriptExecutor js = (JavascriptExecutor) selenium;  
    js.executeScript("window.scrollTo(" + p.getX() + "," + (p.getY()+150) + ");");
}
于 2013-05-14T22:18:06.167 回答