我正在尝试使用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()
的问题请帮忙
答案 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)");