2014-01-08 4 views
0

div 요소가 있고 그 요소를 가져 오려고합니다. 그렇게하기 위해서는 모든 것을 볼 필요가 있으므로 스크롤해야한다고 결정했습니다. 건은, 내 요소를 얻을 그러나 나는 호출 할 때 :셀레늄이 div 요소를 스크롤 할 수 없습니다.

요소가 WebElement 객체가 나는이 스택 트레이스 얻을 수있다
((JavascriptExecutor) driver).executeScript("arguments[0].scrollBy(0,250)",element); 

: 당신은 DIV를 선택하는 페이지를 스크롤 할 필요가 없습니다

org.openqa.selenium.WebDriverException: JavaScript error (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 125 milliseconds 
Build info: version: '2.37.0', revision: 'a7c61cb', time: '2013-10-18 17:14:00' 
System info: host: 'seleniumRC', ip: '192.168.115.95', os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_45' 
Session ID: c74e4f7f-3563-44eb-98a2-4aa6a0347761 
Driver info: org.openqa.selenium.ie.InternetExplorerDriver 
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, enablePersistentHover=true, ignoreZoomSetting=false, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=8, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, initialBrowserUrl=http://****:64232/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}] 
Command duration or timeout: 1.61 seconds 
Build info: version: '2.37.1', revision: 'a7c61cbd68657e133ae96672cf995890bad2ee42', time: '2013-10-21 09:08:07' 
System info: host: 'ROTIMN0L022408', ip: '135.247.143.198', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_45' 
Session ID: 4b75711b-4e98-47d5-acfc-c26e417b0cb1 
Driver info: org.openqa.selenium.remote.RemoteWebDriver 
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, enablePersistentHover=true, ignoreZoomSetting=false, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, webdriver.remote.sessionid=4b75711b-4e98-47d5-acfc-c26e417b0cb1, version=8, ie.usePerProcessProxy=false, ignoreProtectedModeSettings=false, cssSelectorsEnabled=true, requireWindowFocus=false, initialBrowserUrl=http://*:64232/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554) 
    at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:463) 
    at com.motive.hda.selenium.SeleniumSimulatorsTest.test02_checkHDASimulatorEfficiency(SeleniumSimulatorsTest.java:47) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken 
Build info: version: '2.37.1', revision: 'a7c61cbd68657e133ae96672cf995890bad2ee42', time: '2013-10-21 09:08:07' 
System info: host: 'ROTIMN0L022408', ip: '135.247.143.198', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_45' 
Driver info: driver.version: RemoteWebDriver 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:125) 
    ... 13 more 
Caused by: org.openqa.selenium.WebDriverException: JavaScript error (WARNING: The server did not provide any stacktrace information) 
Command duration or enter code here timeout: 125 milliseconds 
Build info: version: '2.37.0', revision: 'a7c61cb', time: '2013-10-18 17:14:00' 
System info: host: 'seleniumRC', ip: '192.168.115.95', os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_45' 
Session ID: c74e4f7f-3563-44eb-98a2-4aa6a0347761 
Driver info: org.openqa.selenium.ie.InternetExplorerDriver 
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, enablePersistentHover=true, ignoreZoomSetting=false, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=8, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, initialBrowserUrl=http://*t:64232/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}] 
Build info: version: '2.37.1', revision: 'a7c61cbd68657e133ae96672cf995890bad2ee42', time: '2013-10-21 09:08:07' 
System info: host: 'ROTIMN0L022408', ip: '135.247.143.198', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_45' 
Driver info: driver.version: RemoteWebDriver 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 
    at org.openqa.selenium.remote.ErrorHandler.rebuildServerError(ErrorHandler.java:227) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:107) 
    ... 13 more 

답변

0

을 어린이들이 이미 페이지에로드 된 경우

div를 입력하고 요소가로드되지 않으면 아래 코드를 시도해보십시오.

WebDriver driver = new FirefoxDriver(); 
JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight," + "document.body.scrollHeight,document.documentElement.clientHeight));"); 
+0

을 그들이 WebDriver 당신에게 검색되지 않습니다 추가하는 경우, WebDriver는 사용자를 시뮬레이션하기 때문에, 그것은 단지 그 볼 (그렇다면 돌아갑니다 의미 일부는 스크롤 할 필요가 없습니다). 또한, 나는 아직도 그것이 작동하지 않는 이유를 이해하지 못한다. – diazazar

0

당신은 코드 아래에이 시도 할 수 있습니다 :

//Get div element having scroll bar you want to do 
WebElement scrollArea = driver.findElement(By.xpath("//")); 

// Initialize Javascript executor 
JavascriptExecutor js = (JavascriptExecutor) driver; 

// Scroll inside web element vertically (e.g. 1000 pixel) 
js.executeScript("arguments[0].scrollTop = arguments[1];",scrollArea, 1000);  
Thread.sleep(1000);` 
관련 문제