Selenium示例程序:获取错误org.openqa.selenium.WebDriverException:期望表达式,得到脚本结束

时间:2016-07-07 06:32:13

标签: selenium-webdriver

我正在尝试使用selenium webdriver进行示例程序。我正在使用Selenium-java-2.53.1中的库。

这是我的示例程序

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;

public class ScrollWebPage {

    WebDriver driver;
    String URL="https://www.gmail.com";

    @BeforeClass
    public void setUp(){
        driver =  new FirefoxDriver();
        driver.get(URL);
        driver.manage().window().maximize();
    }

    @Test(priority=1)
    public void scrollingToBottom(){
        ((JavascriptExecutor) driver).executeScript(URL, "window.scrollTo(0,document.body.scrollHeight)");  
    }

    @AfterClass
    public void tearDown(){
        driver.quit();
    }
}

页面已打开,但无法向下滚动。似乎是executeScript()

的问题

请帮忙

2 个答案:

答案 0 :(得分:1)

.executeScript()期待JavaScript字符串表达式作为第一个参数,而您只提供一个字符串作为Url而不是JavaScript表达式exception表示,您需要更改: -

((JavascriptExecutor) driver).executeScript(URL, "window.scrollTo(0,document.body.scrollHeight)"); 

((JavascriptExecutor) driver).executeScript("window.scrollTo(0,document.body.scrollHeight)"); 

注意: - .executeScript()期望像String arg0, Object... arg1这样的参数,这意味着第一个参数应该是String但它应该是JavaScript表达式和第二个参数应该是Array of Object,如Object[]

在您的情况下,如果您只是想执行滚动功能,则无需提供URL作为参数。

希望它会对你有所帮助.. :)

答案 1 :(得分:0)

使用如下方式查看滚动工作。尝试其他一些页面,因为gmail没有更大的页面来感受滚动。

((JavascriptExecutor)driver).executeScript("window.scrollBy(0,2500)");