程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python Selenium 結合 Java Script 鼠標,鍵盤控制滾動條的多種方法

編輯:Python

在浏覽網頁時,通過鼠標滾動縱向滾動條,是常用的。在 Selenium 自動化測試框架裡,可以通過和 JS ( Java Script ), ActionChains 結合實現。下面將列舉4種的方法, 以新浪為例。

以下相關的方法測試視頻 請看 https://weibo.com/2203755810


1. JS的 scrollTo() 和 scrollBy() 方法


#1

直接移動到指定坐標的絕對位置。


#2

直接移動到相對指定的坐標位置,這個坐標是相對於(0,1000)這個絕對位置再向下移動300像素。


#3

再向下移動300像素,也就是相對於(0,1000)這個絕對坐標位置,移動600像素。

也通過 while 或者 for 循環去實現向下滾動的次數,可以減少重復代碼量。

注:視頻中以移動5次為例。


#4

滾動條拖動到最下方


#5

滾動條拖動到浏覽器的最上方


from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get(‘http://www.sina.com.cn’)
browser.maximize_window()

time.sleep(3)

#1

js = ‘window.scrollTo(0,1000)’
browser.execute_script(js)
time.sleep(5)


#2

js = ‘window.scrollBy(0,300)’
browser.execute_script(js)
time.sleep(5)


#3

js = ‘window.scrollBy(0,300)’
browser.execute_script(js)
time.sleep(5)


#4

js = ‘window.scrollTo(0, document.body.scrollHeight)’
browser.execute_script(js)
time.sleep(5)


#5

js = ‘window.scrollTo(0,0)’
browser.execute_script(js)


2. scrollIntoView() 和 scrollIntoView(false) 方法



#1

定位 “游戲”,如下圖1


#2

用 scrollIntoView()方法,鼠標滾動動到"游戲" 頂端 與當前窗口的頂部對齊, 如下圖2


#3

用 scrollIntoView(false)方法鼠標滾動動到"游戲" 底端 與當前窗口的底部對齊 如下圖3



import time
from selenium import webdriver

browser = webdriver.Chrome()

browser.maximize_window()

browser.get(‘https://www.sina.com.cn’)

time.sleep(3)


#1

element = browser.find_element_by_xpath(’//*[@id=“SI_Order_L”]/div/div[1]/div/span[1]/a’)


#2

browser.execute_script(‘arguments[0].scrollIntoView()’, element)
time.sleep(3)


#3

browser.execute_script(‘arguments[0].scrollIntoView(false)’, element)


圖1


圖2



圖3



3. key_down() 和 key_up() 方法 結合循環方法


#1

按5次 Page_Down 鍵


#2

按5次 Page_Up 鍵


#3

按 End 鍵返回最底


#4

按 Home 鍵返回最頂



from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys

import time

browser = webdriver.Chrome()

browser.maximize_window()

browser.get(‘http://www.sina.com.cn’)

time.sleep(2)


#1

for i in range(5):
ActionChains(browser).key_down(Keys.PAGE_DOWN).key_up(Keys.PAGE_DOWN).perform()
time.sleep(2)


#2

for i in range(5):
ActionChains(browser).key_down(Keys.PAGE_UP).key_up(Keys.PAGE_UP).perform()
time.sleep(1)


#3

ActionChains(browser).key_down(Keys.END).key_up(Keys.END).perform()
time.sleep(2)

#4

ActionChains(browser).key_down(Keys.HOME).key_up(Keys.HOME).perform()


4. JS 的 scrollTop()方法

#1

變量值為1000,表示滾動到底部。


#2

變量值為0, 表示滾動到頂部



from selenium import webdriver
import time

browser = webdriver.Chrome()

browser.maximize_window()

browser.get(‘http://www.sina.com.cn’)

time.sleep(2)


#1

js=“var q=document.documentElement.scrollTop=10000”
browser.execute_script(js)
time.sleep(2)


#2

js=“var q=document.documentElement.scrollTop=0”
browser.execute_script(js)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved