操作Webページスクロールバー
2090 ワード
スライドページのJSコマンド:
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のある絶対位置に移動します.
コード:
#
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()