【发布时间】:2015-01-19 10:47:34
【问题描述】:
我使用以下代码向下滚动
WebElement elementToScroll = driver.findElement(By.id("id"));
scrollDown(elementToScroll, "Max Notifications Per Instance", driver);
((JavascriptExecutor ) driver).executeScript ("mobile: scroll", :direction => 'down');
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("direction", "down");
scrollObject.put("element", ((RemoteWebElement) elementToScroll).getId());
scrollObject.put("text", elementToScroll.getText());
js.executeScript("mobile: scroll", scrollObject);
在设置中,我已将 WebDriver driver 更改为 driver = new RemoteWebDriver();,因为要将我的脚本与酱实验室连接
一切正常,但是当我尝试滚动它时出现错误
处理命令时出现未知的服务器端错误。 (警告:服务器没有提供任何堆栈跟踪信息)(..)
如果我在这里做错了什么,请告诉我。
【问题讨论】:
-
如果使用 JavaScript 无法正常工作,为什么不使用原生 Action API? WebElement Slider = driver.findElement(By.xpath("//*[@id='slider-range']/a[1]"));动作 moveSlider = new Actions(driver);动作 action = moveSlider.dragAndDropBy(Slider, 30, 0).build(); action.perform();
-
OR Actions dragger = new Actions(driver); WebElement draggablePartOfScrollbar = driver.findElement(By.xpath("滑块的xpath")); int numberOfPixelsToDragTheScrollbarDown = 5000; dragger.moveToElement(draggablePartOfScrollbar).clickAndHold().moveByOffset(0,numberOfPixelsToDragTheScrollbarDown).release().perform();