操作Webページスクロールバー


スライドページのJSコマンド:
#     
window.scrollTo(0,document.body.scrollHeight);
window.scrollTo(0,50);
#       
scrollBy(0,50);
# scrollIntoView(true)           
# scrollIntoView(true)           
document.getElementById('id').srollIntoView(true);  #      
scrollToとscrollByの違い(リンク)
    View類のソースコードは以下のように示されています.mScrrollXは現在のViewの画面座標に対する水平方向のオフセット量を記録しています.mScrrollyは記録時に現在のViewの画面の縦方向のオフセット量です.
    以下のコードから分かります.scrollToはViewをスクリーンのXとY位置、つまり絶対位置に移動します.scrollByは実際に呼び出しのscrollToですが、パラメータは現在のmScrrollXとmScrrollyにXとYの位置を加えていますので、ScrllByが呼び出したのはmScrrollXとmScrrollyに対する位置です.上記のコードの中で私達の指がモバイルスクリーンを置かないと、scrollByを呼び出して相対的な距離を移動します.私達の指が離れると、mScrler.startScrroll(mUnboundedScrrollX,0,delta,0,duration)を呼び出します.アニメーションを作成して該当ページに移動します.この過程でシステムは絶えずcomputteScrrollを呼び出します.またscrollToを使ってViewを現在のScrrollerのある絶対位置に移動します.
コード:
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
import unittest
import traceback
from time import sleep
class TestScrollJS(unittest.TestCase):
	def setUp(self):
		self.driver=webdriver.Firefox()
	def test_scrollJS(self):
		url = "http://www.gdut.edu.cn/"
		self.driver.get(url)
		sleep(2)
		#           y=50
		self.driver.execute_script("window.scrollTo(0,50);")
		self.driver.get_screenshot_as_file('scrollTo.png')
		sleep(2)
		#           y=50,                   
		self.driver.execute_script("window.scrollTo(0,50);")
		sleep(2)
		#                  50     
		self.driver.execute_script("window.scrollBy(0,50);")
		self.driver.get_screenshot_as_file('scrollBy1.png')
		sleep(2)
		#                    50     
		self.driver.execute_script("window.scrollBy(0,50);")
		self.driver.get_screenshot_as_file('scrollBy2.png')
		sleep(2)		
		#                 
		self.driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
		self.driver.get_screenshot_as_file('scrollToBottom.png')
	def tearDown(self):
		self.driver.quit()
if __name__ == '__main__':
	unittest.main()