1. 程式人生 > >selenium中JS如何處理滾動條

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)

image

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)

image

二、參考程式碼

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File    : jss.py
# @Software: PyCharm
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
url = 'http://www.cnblogs.com/sanzangTst/'
browser = webdriver.Firefox()
browser.get(url)
time.sleep(3)
# 拉到底部
js="var q=document.documentElement.scrollTop=10000"
browser.execute_script(js)

# 回到頂部
js="var q=document.documentElement.scrollTop=0"
browser.execute_script(js)

# 拖到指定位置
target = browser.find_element_by_id("homepage1_HomePageDays_DaysList_ctl05_DayList_TitleUrl_0")
browser.execute_script("arguments[0].scrollIntoView();", target)

#滾動到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
browser.execute_script(js)

#滾動到頂部
js = "window.scrollTo(0,0)"
browser.execute_script(js)

今天的分享到這裡,對自動化感興趣的同學,歡迎加QQ群175317069,一起學習,相互討論。

群內已經有小夥伴將知識體系整理好(原始碼,筆記,PPT,學習視訊),歡迎加群免費領取資料

分享給喜歡自動化,有夢想成為大牛的Tester們,希望能夠幫助到你們。