使用JavaScript

时间:2015-09-15 12:17:07

标签: javascript selenium

我在JavaScript中创建了一些Selenium测试。我无法点击不在视图中的按钮(这似乎是Chrome驱动程序的一个问题)。此问题的解决方法只是scrolling to the element,但是显示的示例是Java,而不是JavaScript。根据java的解决方案,我尝试了以下内容但没有成功:

    var element = driver.findElement(webdriver.By.id('next_button'));
    var location = element.getLocation();
    var window = new webdriver.Window(driver);
    window.scrollBy(location);

我不认为我在这里使用正确类型的窗口对象。如何使用JavaScript向下滚动元素?

1 个答案:

答案 0 :(得分:1)

getLocation()函数以对象的形式返回位置。此外,window.scrollBy()是一个DOM javascript函数,所以你不能在没有执行它的情况下在selenium中使用它。此外,window.scrollBy()滚动DOM中特定数量的像素,而不是使用滚动到特定位置的window.scrollTo()。这是你如何做到的 -

driver.wait(function(){
driver.findElement(By.id('next_button'), function(ele){
    ele.getLocation().then(function(loc){
        driver.executeScript('return window.scrollTo('+loc.x+','+loc.y+');')
        .then(function(){
            ele.click();
        });
    });
});
},10000);

希望这有帮助。