91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中selenium操作下拉滾動條的幾種方法匯總

發布時間:2020-10-08 23:43:19 來源:腳本之家 閱讀:842 作者:Believer007 欄目:開發技術

UI自動化中經常會遇到元素識別不到,找不到的問題,原因有很多,比如不在iframe里,xpath或id寫錯了等等;但有一種是在當前顯示的頁面元素不可見,拖動下拉條后元素就出來了。

比如下面這樣一個網頁,需要進行拖動下拉條后才能通過selenium找到密碼輸入框的元素,

python中selenium操作下拉滾動條的幾種方法匯總

python中selenium操作下拉滾動條的幾種方法匯總

在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)

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自己寫的方法二)一致,工具給我們做了封裝。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浦东新区| 且末县| 互助| 丹凤县| 栾川县| 余干县| 酒泉市| 丰镇市| 日土县| 贵南县| 安陆市| 定远县| 宁强县| 永德县| 辰溪县| 镇江市| 固始县| 兴安县| 闽清县| 包头市| 鄂托克旗| 长武县| 疏勒县| 广饶县| 衡东县| 寿光市| 建平县| 武功县| 南投县| 疏勒县| 吉安市| 仁化县| 龙胜| 吴旗县| 渭源县| 邢台县| 安庆市| 津市市| 霍邱县| 化州市| 桦甸市|