selenium 控制chrome的滾動條


看到書上有一個控制chrome的頁面滾動條的方法,試着運行了一下,總是報錯。在網上也找到過這個方法,但說的都比較簡單,就是運行不了。可能是我對它理解的不夠。

幸好,又找到了另外一個方法,解決了這個問題,能成功的操作頁面的滾動條。

 

貼代碼:

#coding=utf-8
import time

from selenium import webdriver

driver=webdriver.Chrome()
driver.get('https://www.baidu.com')

driver.maximize_window()
driver.implicitly_wait(20)
driver.find_element_by_id('kw').send_keys('hello!')
driver.find_element_by_id('su').click()

a=driver.current_window_handle
driver.switch_to_window(a)
time.sleep(3)
# js01 = "window.scrollBy(0,1000)" #滾動頁面,控制頁面的滾動條
# driver.execute_script(js01)

targetElem = driver.find_element_by_xpath('//*[@id="6"]/h3/a')
driver.execute_script("arguments[0].focus();",targetElem) #滾動到頁面的指定元素

 

 

 

 

參考文章內容:——跟我遇到的問題非常類似。

目的:通過selenium控制瀏覽器滾動條

原理:通過 driver.execute_script()執行js代碼,達到目的
      driver.execute_script( "window.scrollBy(0,1000)"
語法:scrollBy(x,y)
參數  描述
x   必需。向右滾動的像素值。
y   必需。向下滾動的像素值。
或者用
       driver.execute_script( "window.scrollTo(0,1000)"
語法:scrollBy(x,y)
 
參數  描述
x   必需。必需。要在窗口文檔顯示區左上角顯示的文檔的 x 坐標。
y   必需。必需。要在窗口文檔顯示區左上角顯示的文檔的 y 坐標。
配合chrome插件能快速找到位置:page ruler
 
問題總結:
為了達到目的我想到了 2 種方法:
1. 網上大多是拿到瀏覽器滾動條的js代碼,然后執行,不知道為什么我這親測沒有成功; 
    js = "var q=document.documentElement.scrollTop=10000"
    driver.execute_script(js)
2. 通過模擬鍵盤的形式去滾動屏幕,也沒成功,也許是我對這個用法還不熟練
  driver.find_element_by_css_selector( '.fadeInUp.animated' ).send_keys(Keys.DOWN)


免責聲明!

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



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