欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

selenium里面也沒(méi)有直接的方法去控制滾動(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中沒(méi)有xpath的方法,所以滾動(dòng)條沒(méi)有id的網(wǎng)頁(yè)此方法不適用

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

#左右方向的滾動(dòng)條可以使用window.scrollTo(左邊距,上邊距)方法
#example
js="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)到可見(jiàn)的元素去

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

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

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

from selenium.webdriver.common.keys import Keys
driver.find_element_by_id("****").send_keys(Keys.TAB)

方法四:

scrollTo函數(shù)

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

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

--scrollTop 設(shè)置或獲取位于對(duì)象最頂端和窗口中可見(jiàn)內(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)定位到元素。

代碼塊

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

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

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

相關(guān)文章

  • 用python爬取分析淘寶商品信息詳解技術(shù)篇

    用python爬取分析淘寶商品信息詳解技術(shù)篇

    這篇文章主要介紹了用python爬取分析淘寶商品信息的技術(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python實(shí)現(xiàn)代碼統(tǒng)計(jì)器

    python實(shí)現(xiàn)代碼統(tǒng)計(jì)器

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)代碼統(tǒng)計(jì)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 基于python的selenium全網(wǎng)最新超詳細(xì)教程

    基于python的selenium全網(wǎng)最新超詳細(xì)教程

    這篇文章主要介紹了基于python的selenium全網(wǎng)最新超詳細(xì)教程,本文內(nèi)容比較長(zhǎng),結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Pandas庫(kù)中dataframe.corr()函數(shù)的使用

    Pandas庫(kù)中dataframe.corr()函數(shù)的使用

    dataframe.corr()是Pandas庫(kù)中的一個(gè)函數(shù),用于計(jì)算DataFrame中各列之間的相關(guān)系數(shù),本文主要介紹了Pandas庫(kù)中dataframe.corr()函數(shù)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Python遞歸函數(shù)實(shí)例講解

    Python遞歸函數(shù)實(shí)例講解

    在本文中我們通過(guò)實(shí)例給大家講解了關(guān)于Python遞歸函數(shù)的用法以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • Python中的變量,參數(shù)和模塊介紹

    Python中的變量,參數(shù)和模塊介紹

    大家好,本篇文章主要講的是Python中的變量,參數(shù)和模塊介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python的OptionParser模塊示例教程

    Python的OptionParser模塊示例教程

    這篇文章主要介紹了Python的OptionParser模塊教程,本文通過(guò)示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • 關(guān)于Python dict存中文字符dumps()的問(wèn)題

    關(guān)于Python dict存中文字符dumps()的問(wèn)題

    這篇文章主要介紹了關(guān)于Python dict存中文字符dumps()的問(wèn)題,本文給大家分享問(wèn)題及解決方案,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Python驗(yàn)證文件是否可讀寫(xiě)代碼分享

    Python驗(yàn)證文件是否可讀寫(xiě)代碼分享

    這篇文章主要介紹了Python驗(yàn)證文件是否可讀寫(xiě)代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 簡(jiǎn)單的連接MySQL與Python的Bottle框架的方法

    簡(jiǎn)單的連接MySQL與Python的Bottle框架的方法

    這篇文章主要介紹了簡(jiǎn)單的連接MySQL與Python的Bottle框架的方法,主要基于mysql-connector插件,需要的朋友可以參考下
    2015-04-04

最新評(píng)論