調過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...