Selenium 瀏覽器滾動條操作

2022-03-31 17:40:59 字數 1943 閱讀 8067

在用selenium做web自動化時,經常會碰到要定位的元素不在當前屏,需要拖動瀏覽器的滾動條才能顯示出來。如果直接去定位的話,一定會報元素不存在的錯誤。那麼怎麼對瀏覽器的滾動條進行操作呢?

webdriver不能定位到瀏覽器的滾動條,只有通過execute_script()來執行js指令碼,達到操作滾動條的目的。

這個方法是最常用的,它就好像我們人一樣拖動滾動條用眼睛在頁面上尋找需要的元素,一旦找到那個元素了,我就停止拖動。

**:

#

coding = utf-8

from selenium import

webdriver

from time import

sleep

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

driver.get(r

'')driver.maximize_window()

driver.implicitly_wait(20)

#描述元素的屬性

target = driver.find_element_by_css_selector("

img[title='download autoit']")

#執行js指令碼,拖動瀏覽器滾動條到元素的位置

driver.execute_script("

arguments[0].scrollintoview();

", target)#退出

sleep(5)

driver.quit()

scrollto(xpos,ypos)
此方法可以把滾動條拖動到指定的座標,其中xpos是橫座標,也就是對橫滾動條進行操作;ypos是縱座標,也就是對豎進度條進行操作

那麼我們怎麼能知道元素所在位置的座標呢?先來介紹乙個chrome瀏覽器的外掛程式: page ruler

安裝外掛程式後,開啟谷歌瀏覽器,可以再右上角看到一把尺子的圖示,點選尺子的圖示,移動到元素的位置,就可以顯示這個元素的座標了,如圖:

知道元素的座標後,我們就可以拖動滾動條了。

**:

#

coding = utf-8

from selenium import

webdriver

from time import

sleep

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

driver.get(r

'')driver.maximize_window()

driver.implicitly_wait(20)

#呼叫js**拖動滾動條

driver.execute_script("

window.scrollto(0,1680)")

#直接拖動到底部

driver.execute_script("

window.scrollto(0,document.body.scrollheight)")

#拖動到頂部

driver.execute_script("

window.scrollto(0,0)")

#退出sleep(5)

driver.quit()

瀏覽器滾動條

做 時發現登入成功後瀏覽器滾動條消失無法滾動頁面 通過觀察和除錯,發現是強制隱藏了bootstrap的模態框後,body的overflow變為了hidden,同時也多了乙個17px的右內邊距,無法呼叫出垂直滾動條,解決方案 隱藏模態框的同時設定body的overflow為scroll,同時取消右內邊...

Selenium成長之路 22瀏覽器滾動條處理

在實際專案中,會經常出現元素不在當前螢幕,需要滑動滾動條,才能顯示想要的元素。這樣,如何通過定位滾動條,來定位到想要的元素呢,webdriver不能直接定位到瀏覽器滾動條,只能通過execute script 來執行js指令碼,達到滾動條的目的 我們今天運用window.scrollto 的方法來定...

selenium針對瀏覽器滾動條的操作

我們在實際自動化測試過程中,肯定會遇到當前頁面顯示不到我們定位的元素。這就需要下拉滾動條才能顯示出我們的元素 而滾動條的按鈕又是我們定位不到的,所以需要使用js指令碼來完成 1.先來說我們的下拉滾動條的操作 通過js指令碼進行設計 通過座標點進行絕對移動 座標原點 0,0 get driver.ma...