瀏覽器滾動條操作

2022-09-07 14:00:07 字數 2670 閱讀 3918

使用示例

js = "

window.scrollto(x,y)

"x為水平拖動距離,y為垂直拖動舉例

driver.execute_script(js)

js= "

var q=document.documentelement.scrolltop=n

"n為從頂部往下移動滾動舉例

driver.execute_script(js)

豎向滾動

from selenium import

webdriver

driver =webdriver.chrome()

driver.get(

'***')

js = '

var action=document.documentelement.scrolltop=10000'#

設定滾動條距離頂部的位置,設定為 10000, 超過10000就是最底部

driver.execute_script(js) #

執行指令碼

js = '

var action=document.documentelement.scrolltop=0'#

回到頂部

driver.execute_script(js)

driver.quit()

from selenium import

webdriver

import

unittest, time

class

testdemo(unittest.testcase):

defsetup(self):

self.driver =webdriver.chrome()

deftest_scroll(self):

url = '

'try

: self.driver.get(url)

#使用js的scrollto函式和document.body.scrollheight引數

#將頁面的滾動條滑動到頁面的最下方

self.driver.execute_script('

window.scrollto(1000,document.body.scrollheight);')

#使用js的scrollintoview函式將遮擋的元素滾動到可見螢幕上

#scrollintoview(true)表示將元素滾動到螢幕中間

#scrollintoview(false)表示將元素滾動到螢幕底部

self.driver.execute_script("

document.getelementbyid('choice').scrollintoview(true);")

self.driver.execute_script(

"document.getelementbyid('choice').scrollintoview(false);")

time.sleep(3)

#使用js的scrollby方法,使用0和400橫縱座標引數,

#將螢幕向下滾動400畫素

self.driver.execute_script('

window.scrrollby(0,400);')

time.sleep(3)

except

exception as e:

print

(e)

defteardown(self):

self.driver.quit()

if__name__ == '

__main__':

unittest.main()

在本例中的頁面中,密碼是輸入框,正常手工操作時,可以通過tab鍵會切換到密碼框中,所以根據此思路,在python中也可以傳送tab鍵來切換,使元素顯示

from selenium.webdriver.common.keys import keys

driver.find_element_by_id("id_login_method_0").send_keys(keys.tab)

在web自動化中,不只只有縱向滾動條,可能還有橫線滾動條

js ="window.scrollto(100,400);"

driver.execute_script(js) # 第乙個引數 x 是橫向距離,第二個引數 y 是縱向距離

以上方法在 firefox 上是可以的,但是用 chrome 瀏覽器,發現不管用。谷歌瀏覽器就是這麼任性,不聽話,於是用以下方法解決谷歌瀏覽器滾動條的問題。

js = "var q=document.body.scrolltop=0"

driver.execute_script(js)

雖然用上面的方法可以解決拖動滾動條的位置問題,但是有時候無法確定我需要操作的元素,這個時候我們可以先讓頁面直接跳到元素出現的位置,然後就可以操作了。同樣需要借助 js 去實現

target = driver.find_element_by_***x()

driver.execute_script("arguments[0].scrollintoview();", target)

瀏覽器滾動條

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

Selenium 瀏覽器滾動條操作

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

iframe滾動條充當瀏覽器滾動條

在做部落格專案的時候,使用了iframe,方便根據選擇的文章類別切換顯示的內容,但是文章一般都有很多,通過bootstrap的 列表的方式顯示的話,iframe是一定會出現滾動條的,特別是我新增了乙個 滾動條觸底之後動態載入更多的文章 的功能。這樣頁面上就會有兩個滾動條,特別奇怪。在網上學習了一些之...