我正在尝试在自动化测试(selenium webdriver)中进行鼠标滚动。我的页面有大量数据,需要时间来加载所有数据。
我的要求: 我有一个带有基准集的统一表,其中这些记录显示在我的页面底部显示的值集中。
我正在验证两个值是否相等,因为我需要完全滚动页面来评估它们。
我使用了以下代码:
Javascript jse = (Javascript)driver;
jse.executescript("scroll(0, 9000)");
这并不能帮助它只滚动一半的数据,所以我的测试失败了。
建议请...
答案 0 :(得分:2)
我们可以使用 JavascriptExecutor 来实现这一目标。以下示例将从上到下滚动此页面:
WebDriver driver = new ChromeDriver();
driver.get("http://stackoverflow.com/questions/25363023/mouse-scroll-down-using-selenium-webdriver-2-0-java");
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollTo(0,document.body.scrollHeight);");
要使用上面的代码,请导入以下实用程序:
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
Lemme知道这是否有帮助!
答案 1 :(得分:1)
//鼠标向下滚动
JavascriptExecutor Scrool = (JavascriptExecutor) driver;
Scrool.executeScript("window.scrollBy(0,300)", "");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
您可以在滚动
后找到元素driver.findElement(By.xpath(""));
//鼠标向上滚动
JavascriptExecutor Scrool = (JavascriptExecutor) driver;
Scrool.executeScript("window.scrollBy(0,-300)", "");
//要使用上述代码,请导入以下实用程序
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
答案 2 :(得分:0)
另一件对我有用的是浏览器辅助功能和 TAB 按钮。正如您所知,通过发送TAB,您可以浏览该页面,只要您知道需要执行多少次就可以到达您想要的位置。您也可以尝试点击箭头向上/向下:
1.Element.SendKeys(OpenQA.Selenium.Keys.ArrowUp);
2. char u = '\uE013'; // ASCII code for ArrowUp
char d = '\u0x50'; // code for ArrowDown
Element.SendKeys(Convert.ToString(u));