1. 程式人生 > 其它 >datagrid底部顯示水平滾動_python自動化之JS處理滾動條

datagrid底部顯示水平滾動_python自動化之JS處理滾動條

技術標籤:datagrid底部顯示水平滾動

滾動條操作
瀏覽器滾動條並沒有提供相應的操作方法。在這種情況下,就可以藉助JavaScript也就是JS來控制瀏覽器的滾動條。
WebDriver提供了execute_script()方法來執行JavaScript程式碼。
js="window.scrollTo(100,450);"
driver.execute_script(js)
當頁面上的元素超過一屏後,想操作螢幕下方的元素,是不能直接定位到,會報元素不可見的。
這時候需要藉助滾動條來拖動螢幕,使被操作的元素顯示在當前的螢幕上。
滾動條是無法直接用定位工具來定位的。selenium裡面也沒有直接的方法去控制滾動條,這時候只能藉助JS了,還好selenium提供了一個操作js的方法:

execute_script(),可以直接執行js的指令碼。
--scrollHeight 獲取物件的滾動高度。
--scrollLeft 設定或獲取位於物件左邊界和視窗中目前可見內容的最左端之間的距離。
--scrollTop 設定或獲取位於物件最頂端和視窗中可見內容的最頂端之間的距離。
--scrollWidth 獲取物件的滾動寬度。

程式碼參考:

# coding:utf-8fromtimeimportsleepfrom selenium import webdriverdriver = webdriver.Chrome()driver.get("https://www.baidu.com")print(driver.name)# 滾動到底部js = "window.scrollTo(0,document.body.scrollHeight)"driver.execute_script(js)# ## 回到頂部# def scroll_top():#     if driver.name == "chrome":#        js = "var q=document.body.scrollTop=0" # Chrome瀏覽器不管用的話,可以這樣試試#     else:#         js = "var q=document.documentElement.scrollTop=0"#     return driver.execute_script(js)# 滾動到頂部js = "window.scrollTo(0,0)"driver.execute_script(js)sleep(5)# 滾動到底部js="var q=document.documentElement.scrollTop=10000"driver.execute_script(js)sleep(5)# 聚焦元素target = driver.find_element_by_link_text("hao123")driver.execute_script("arguments[0].scrollIntoView();", target)sleep(3)driver.quit()

關注公眾號:Python爬蟲資料分析挖掘,免費獲取更多開源專案原始碼

10fbbcdb0246aef6bce73744667b5eca.png