最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年07月21日 15:31:29   作者:yimu-yimu  
這篇文章主要介紹了Selenium及python實現(xiàn)滾動操作多種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

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

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

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(左邊距,上邊距)方法
#example
js="window.scrollTo(200,1000)"
driver.execute_script(js)

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

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

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

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

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

from selenium.webdriver.common.keys import Keys
driver.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,會自動定位到元素。

代碼塊

driver.find_element_by_xpath("http://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("http://span[@class='tree-title'][text()='專業(yè)測試.修改后/123456']").click()

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

宜阳县| 平安县| 文水县| 乐都县| 株洲市| 来安县| 洛南县| 大丰市| 冷水江市| 光泽县| 石河子市| 华安县| 巴南区| 滦平县| 延寿县| 东至县| 湟源县| 大化| 靖边县| 惠水县| 瓦房店市| 安阳县| 巨野县| 沁水县| 东阿县| 锡林郭勒盟| 名山县| 澄城县| 乌兰县| 绥中县| 株洲市| 乾安县| 榆社县| 凌源市| 巩留县| 鄂托克旗| 亳州市| 鄂温| 巍山| 资兴市| 光山县|