自動化測試基礎篇--Selenium中JS處理滾動條


前言

什么是JS?
JS就是JavaScript;
JavaScript 是世界上最流行的腳本語言;
JavaScript 是屬於 web 的語言,它適用於 PC、筆記本電腦、平板電腦和移動電話;
JavaScript 被設計為向 HTML 頁面增加交互性;
許多 HTML 開發者都不是程序員,但是 JavaScript 卻擁有非常簡單的語法。幾乎每個人都有能力將小的 JavaScript 片段添加到網頁中。

一、JS處理滾動條問題

1、滾動條回到頂部:
js="var q=document.getElementById('id').scrollTop=0"
driver.execute_script(js)
或者
js="var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
2、滾動條拉到底部:
js="var q=document.getElementById('id').scrollTop=10000"
driver.execute_script(js)
或者
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
3、滾動條拉到指定位置(具體元素):
target = driver.find_element_by_id("id_keypair")
driver.execute_script("arguments[0].scrollIntoView();", target)
4、通過模擬鍵盤DOWN(↓)來拖動:
driver.find_element_by_id("id").send_keys(Keys.DOWN)
5、scrollTo函數
--scrollHeight 獲取對象的滾動高度。 
--scrollLeft 設置或獲取位於對象左邊界和窗口中目前可見內容的最左端之間的距離。 
--scrollTop 設置或獲取位於對象最頂端和窗口中可見內容的最頂端之間的距離。 
--scrollWidth 獲取對象的滾動寬度。
 
#滾動到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js)
#滾動到頂部
js = "window.scrollTo(0,0)"
driver.execute_script(js)

二、參考代碼

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @File    : jss.py
 4 # @Software: PyCharm
 5 from selenium import webdriver
 6 import time
 7 from selenium.webdriver.common.keys import Keys
 8 url = 'http://www.cnblogs.com/sanzangTst/'
 9 browser = webdriver.Firefox()
10 browser.get(url)
11 time.sleep(3)
12 # 拉到底部
13 js="var q=document.documentElement.scrollTop=10000"
14 browser.execute_script(js)
15 
16 # 回到頂部
17 js="var q=document.documentElement.scrollTop=0"
18 browser.execute_script(js)
19 
20 # 拖到指定位置
21 target = browser.find_element_by_id("homepage1_HomePageDays_DaysList_ctl05_DayList_TitleUrl_0")
22 browser.execute_script("arguments[0].scrollIntoView();", target)
23 
24 #滾動到底部
25 js = "window.scrollTo(0,document.body.scrollHeight)"
26 browser.execute_script(js)
27 
28 #滾動到頂部
29 js = "window.scrollTo(0,0)"
30 browser.execute_script(js)

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM