Python+selenium點(diǎn)擊網(wǎng)頁(yè)上指定坐標(biāo)的實(shí)例
例如有些頁(yè)面元素很難獲取,但是位置很固定,那么可以直接用坐標(biāo)來(lái)進(jìn)行操作
例如要對(duì)頁(yè)面上的(x:200, y:100)進(jìn)行操作,可以用如下代碼:
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains dr = webdriver.Chrome() dr.get('http://www.baidu.com') ActionChains(dr).move_by_offset(200, 100).click().perform() # 鼠標(biāo)左鍵點(diǎn)擊, 200為x坐標(biāo), 100為y坐標(biāo) ActionChains(dr).move_by_offset(200, 100).context_click().perform() # 鼠標(biāo)右鍵點(diǎn)擊
運(yùn)行效果(右鍵):
需要注意的是,每次移動(dòng)都是在上一次坐標(biāo)的基礎(chǔ)上(即坐標(biāo)值是累積的),如上的代碼實(shí)際運(yùn)行時(shí),點(diǎn)擊完左鍵再點(diǎn)擊右鍵,坐標(biāo)會(huì)變成(400, 200)。
可以用封裝來(lái)抵消這種累積(點(diǎn)擊完之后將鼠標(biāo)坐標(biāo)恢復(fù)),代碼如下:
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains def click_locxy(dr, x, y, left_click=True): ''' dr:瀏覽器 x:頁(yè)面x坐標(biāo) y:頁(yè)面y坐標(biāo) left_click:True為鼠標(biāo)左鍵點(diǎn)擊,否則為右鍵點(diǎn)擊 ''' if left_click: ActionChains(dr).move_by_offset(x, y).click().perform() else: ActionChains(dr).move_by_offset(x, y).context_click().perform() ActionChains(dr).move_by_offset(-x, -y).perform() # 將鼠標(biāo)位置恢復(fù)到移動(dòng)前 if __name__ == "__main__": dr = webdriver.Chrome() dr.get('http://www.baidu.com') click_locxy(dr, 100, 0) # 左鍵點(diǎn)擊 click_locxy(dr, 100, 100, left_click=False) # 右鍵點(diǎn)擊
以上這篇Python+selenium點(diǎn)擊網(wǎng)頁(yè)上指定坐標(biāo)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python運(yùn)行出現(xiàn)DeprecationWarning的問(wèn)題及解決
這篇文章主要介紹了Python運(yùn)行出現(xiàn)DeprecationWarning的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python科學(xué)計(jì)算之numpy——ufunc函數(shù)用法
今天小編就為大家分享一篇python科學(xué)計(jì)算之numpy——ufunc函數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解
今天小編就為大家分享一篇對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02pandas讀取excel統(tǒng)計(jì)空值數(shù)量錯(cuò)誤的解決方法
pd.read_excel()讀取excel數(shù)據(jù)后,用pd.isnull().sum()統(tǒng)計(jì)空值數(shù)量不對(duì),本文主要介紹了pandas讀取excel統(tǒng)計(jì)空值數(shù)量錯(cuò)誤的解決方法,感興趣的可以了解一下2024-04-04python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法
今天小編就為大家分享一篇python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01借助Paramiko通過(guò)Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp的操作
這篇文章主要介紹了借助Paramiko通過(guò)Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03python arcpy練習(xí)之面要素重疊拓?fù)錂z查
今天小編就為大家分享一篇Python ArcPy的面要素重疊拓?fù)錂z查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-09-09