senium做自動化測試的過程中,有的頁面需要下拉滾動條才能全部加載完成,否則加載不出來就定位不到想要的元素。
參考鏈接:http://www.cnblogs.com/landhu/p/5761794.html
摘抄如下:
在python中有幾種方法解決這種問題,簡單介紹下,給需要的人:
方法一)使用js腳本直接操作,方法如下:
js="var q=document.getElementById('id').scrollTop=10000"
driver.execute_script(js)
或:
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
這里的id為滾動條的id,但js中沒有xpath的方法,所以滾動條沒有id的網頁此方法不適用
方法二)使用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)
我用第二種方法實現了頁面全部加載。