python橫向滾動條 控制滾動條

2021-10-21 06:24:25 字數 3073 閱讀 9800

調過js指令碼控制

~~~python

1. #coding=utf-8

2. from selenium import webdriver

3. import time

5. driver=webdriver.firefox()

6. driver.get("")

7. #搜尋

8. driver.find\_element\_by\_id("kw").send\_keys("selenium")

9. driver.find\_element\_by\_id("su").click()

10. time.sleep(3)

11. #將頁面滾動條拖到底部

12. js="var q=document.documentelement.scrolltop=100000"

13. driver.execute\_script(js)

14. time.sleep(3)

15. #將滾動條移動到頁面的頂部

16. js="var q=document.documentelement.scrolltop=0"

17. driver.execute\_script(js)

18. time.sleep(3)

19. #將頁面滾動條移動到頁面任意位置,改變等於號後的數值即可

20. js="var q=document.documentelement.scrolltop=50"

21. driver.execute\_script(js)

22. time.sleep(999999)

23. '''

24. #若要對頁面中的內嵌視窗中的滾動條進行操作,要先定位到該內嵌視窗,在進行滾動條操作

25. js="var q=document.getelementbyid('id').scrolltop=100000"

26. driver.execute\_script(js)

27. time.sleep(3)

28. '''

1.通過座標控制橫向和縱向滾動條 scrollto(x, y)

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

driver.execute\_script(js)

# 2.等待新視窗開啟

webdriverwait(driver,10).until(ec.new_window_is_opened(windows))

# 獲取當前所有視窗控制代碼

windows = driver.window_handles

# 3.切換到最後乙個視窗

driver.switch_to.window(windows[-1])

# 滾動頁面到最底部

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

# 等待元素可見

webdriverwait(driver,10).until(ec.visibility_of_element_located((by.xpath,'//*[@id="5"]/h3/a')))

# 1.先找到元素

element = driver.find_element_by_xpath('//*[@id="5"]/h3/a')

# 2.利用js將元素拖動到可見區域

driver.execute_script("arguments[0].scrollintoview(false);",element) #可見元素與頁面「底端」對齊

## 只針對內嵌滾動條

# coding=utf-8

from selenium import webdriver

import time

from selenium.webdriver.common.keys import keys

1.通過系統鍵盤:down來操作

3.內嵌滾動條

driver = webdriver.firefox()

driver.get("")

#最大化視窗 driver.maximize_window()

# 通過按向下鍵將頁面滾動條拖到底部 driver.find_element_by_xpath("xpath").send_keys(keys.down)

time.sleep(1)

## 使用js指令碼拖動到提定地方

target = driver.find_element_by_id("id_keypair")

driver.execute_script("arguments[0].scrollintoview();", target) #拖動到可見的元素去

這個方法可以將滾動條拖動到需要顯示的元素位置,此方法用途比較廣,可以使用

**方法三)**根據頁面顯示進行變通,傳送tab鍵

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

from selenium.webdriver.common.keys import keys

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

**update**

前段時間使用robotframe work框架時,selenium2library裡面有乙個非常好用的功能focus,會自動定位到元素,研讀一下原始碼:

def focus(self, locator):

"""sets focus to element identified by `locator`."""

element = self._element_find(locator, true, true)

self._current_browser().execute_script("arguments[0].focus();", element)

從原始碼中我們可以看到,此方法與我們在python自己寫的**方法二)**一致,工具給我們做了封裝。

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

橫向滑動 滾動隱藏滾動條

上週,因為要用到可以橫向滾動,不能出現滾動條的樣式,網上搜了一圈也沒有點想要的效果,乾脆去偷乙個 先預覽下效果吧 ok,上 html div class demo tab ul id items li class item div class item on div li li calss item...

extjs gridpanel 橫向滾動條

mlb弄個girdpanl列太多竟然不會自動出現橫向滾動條,讓我對ext的易用性大為懷疑,在google一艘解決方案一大堆,五花八門,試了一遍竟然沒有乙個可以解決,這是神馬世界,自己把屬性挨著除錯了一遍,我相信絕對是屬性設定的有問題,終於發現了 width 1200,height 400,autoh...

Extjs grid橫向滾動條

關於extjs gridpanel設定autoheight true時,橫向滾動條的問題 使用gridpanel時我們有時需要給設定autoheight true,但這時如果 的寬度大於它的容器的寬度,多餘的內容就會被隱藏而不會出現 橫向的滾動條,費了老大勁兒才找到了解決辦法,方法就是給gridpa...