亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Selenium及python實現(xiàn)滾動操作多種方法

瀏覽:2日期:2022-07-16 16:12:08

selenium并不是萬能的,有時候頁面上操作無法實現(xiàn)的,這時候就需要借助JS來完成了。

  當頁面上的元素超過一屏后,想操作屏幕下方的元素,是不能直接定位到,會報元素不可見的。

這時候需要借助滾動條來拖動屏幕,使被操作的元素顯示在當前的屏幕上。滾動條是無法直接用定位工具來定位的。

selenium里面也沒有直接的方法去控制滾動條,這時候只能借助J了,還好selenium提供了一個操作js的方法:execute_script(),可以直接執(zhí)行js的腳本。

方法一:使用js腳本直接操作

# 滾動到頂部 def scroll_top(self): if self.driver.name == 'Chrome': js = 'var q=document.body.scrollTop=0' else: js = 'var q=document.documentElement.scrollTop=0' return self.driver.execute_script(js) # 滾動到底部 def scroll_foot(self): if self.driver.name == 'Chrome': js = 'var q=document.body.scrollTop=1000' else: js = 'var q=document.documentElement.scrollTop=1000' return self.driver.execute_script(js)

或者:

js='var q=document.getElementById(’***’).scrollTop=10000'driver.execute_script(js)

這里的id為滾動條的id,但js中沒有xpath的方法,所以滾動條沒有id的網(wǎng)頁此方法不適用

上面展示的是上下方向的滾動條,接下來介紹左右方向的滾動條的操作方法

#左右方向的滾動條可以使用window.scrollTo(左邊距,上邊距)方法#examplejs='window.scrollTo(200,1000)'driver.execute_script(js)

方法二:使用 js 腳本拖動到指定位置

target = driver.find_element_by_id('***')driver.execute_script('arguments[0].scrollIntoView();', target) #拖動到可見的元素去

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

方法三:根據(jù)頁面顯示進行變通,發(fā)送tab鍵

比如,密碼是輸入框,正常手工操作時,可以通過tab鍵會切換到密碼框中,所以根據(jù)此思路,在python中也可以發(fā)送tab鍵來切換,使元素顯示

from selenium.webdriver.common.keys import Keysdriver.find_element_by_id('****').send_keys(Keys.TAB)

方法四:

scrollTo函數(shù)

--scrollHeight 獲取對象的滾動高度。

--scrollLeft 設(shè)置或獲取位于對象左邊界和窗口中目前可見內(nèi)容的最左端之間的距離。

--scrollTop 設(shè)置或獲取位于對象最頂端和窗口中可見內(nèi)容的最頂端之間的距離。

--scrollWidth 獲取對象的滾動寬度

#滾動到底部js = 'window.scrollTo(0,document.body.scrollHeight)'driver.execute_script(js)#滾動到頂部js = 'window.scrollTo(0,0)'driver.execute_script(js)

其他:

robotframe work框架中,selenium2library里面有一個非常好用的功能Focus,會自動定位到元素。

Selenium及python實現(xiàn)滾動操作多種方法

代碼塊

driver.find_element_by_xpath('//div[@id=’search’]/div/span/input').click()target = driver.find_element_by_id('_easyui_tree_17')driver.execute_script('arguments[0].scrollIntoView();', target) #拖動到可見的元素去driver.find_element_by_xpath('//span[@class=’tree-title’][text()=’專業(yè)測試.修改后/123456’]').click()

此方法與我們在python自己寫的方法二)一致,工具給我們做了封裝。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美亚洲国产精品久久高清 | 国内精品视频免费观看 | 成年免费大片黄在线观看岛国 | 久久人人插| 欧美特黄录像播放 | 色综合久久加勒比高清88 | 国产成人久久蜜一区二区 | 九色精品高清在线播放 | 在线观看香蕉免费啪在线观看 | 在线亚洲精品国产成人二区 | 99热这里有免费国产精品 | 尤物精品视频在线观看 | 国产成人精品日本亚洲语音1 | 国产短视频在线观看 | 特黄黄三级视频在线观看 | 国产美女在线观看 | 亚洲精品久久久久久中文字幕小说 | 日本制服丝袜在线 | 国产精品久久久久久久久久日本 | 国产免费小视频在线观看 | 99久久免费精品视频 | 久久er99热精品一区二区 | 一级特黄a免费大片 | 91爱啪啪 | 亚洲欧洲日韩天堂无吗 | 91久久99 | 老湿机一区午夜精品免费福利 | 国产欧美精品国产国产专区 | 亚洲精品香蕉一区二区在线观看 | 久草视频手机在线观看 | 我我色综合| 日韩美女人体视频免费播放 | 国产一区二区三区免费 | 三级毛片在线播放 | 99热热热 | 亚洲综合三区 | 亚1洲二区三区四区免费 | 国产免费一区不卡在线 | 欧美三级中文字幕 | 免费又色又爽1000禁片 | 亚洲精品tv久久久久久久久久 |