亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

Selenium及python實(shí)現(xiàn)滾動(dòng)操作多種方法

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

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

  當(dāng)頁(yè)面上的元素超過一屏后,想操作屏幕下方的元素,是不能直接定位到,會(huì)報(bào)元素不可見的。

這時(shí)候需要借助滾動(dòng)條來(lái)拖動(dòng)屏幕,使被操作的元素顯示在當(dāng)前的屏幕上。滾動(dòng)條是無(wú)法直接用定位工具來(lái)定位的。

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

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

# 滾動(dòng)到頂部 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) # 滾動(dòng)到底部 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為滾動(dòng)條的id,但js中沒有xpath的方法,所以滾動(dòng)條沒有id的網(wǎng)頁(yè)此方法不適用

上面展示的是上下方向的滾動(dòng)條,接下來(lái)介紹左右方向的滾動(dòng)條的操作方法

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

方法二:使用 js 腳本拖動(dòng)到指定位置

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

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

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

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

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

方法四:

scrollTo函數(shù)

--scrollHeight 獲取對(duì)象的滾動(dòng)高度。

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

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

--scrollWidth 獲取對(duì)象的滾動(dòng)寬度

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

其他:

robotframe work框架中,selenium2library里面有一個(gè)非常好用的功能Focus,會(huì)自動(dòng)定位到元素。

Selenium及python實(shí)現(xiàn)滾動(dòng)操作多種方法

代碼塊

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) #拖動(dòng)到可見的元素去driver.find_element_by_xpath('//span[@class=’tree-title’][text()=’專業(yè)測(cè)試.修改后/123456’]').click()

此方法與我們?cè)趐ython自己寫的方法二)一致,工具給我們做了封裝。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: www色在线 | 国产大片中文字幕在线观看 | 欧美精品人爱c欧美精品 | 一级白嫩美女毛片免费 | 一级做a爱过程免费视频时看 | 污美女网站www在线观看 | 久久久国产99久久国产久 | 久久精品成人免费网站 | 久久夜色精品国产噜噜亚洲a | 色综合a怡红院怡红院首页 色综合精品久久久久久久 色综合九九 | 日韩一级a毛片欧美区 | 国产精品免费看久久久 | 18视频免费网站 | 亚洲第一免费播放区 | 永久黄网站色视频免费网站 | 5388国产亚洲欧美在线观看 | 毛片免费观看成人 | 在线观看亚洲 | 国内交换一区二区三区 | 国产成人精品久久一区二区小说 | 在线视频免费国产成人 | 日韩a级毛片免费视频 | 国产成人综合高清在线观看 | 在线观看99| 日韩三级视频 | 国产三级视频网站 | 国产精品特黄毛片 | 亚洲高清在线观看看片 | 欧美精品hdxxxxx | 在线精品国产成人综合第一页 | 久草在线中文视频 | 国产综合视频在线观看一区 | 精品国产三级a∨在线 | 精品国产欧美一区二区 | 91久久青草精品38国产 | 日韩精品一区二区三区视频 | 日朝欧美亚洲精品 | 丝袜精品 欧美 亚洲 自拍 | 欧美一级毛片在线播放 | 草草影院私人免费入口 | 在线欧美不卡 |