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實(shí)現(xiàn)類(lèi)似jQuery使用中的鏈?zhǔn)秸{(diào)用的示例
chained calls鏈?zhǔn)秸{(diào)用其實(shí)多是指一種方法鏈的程序?qū)懛?這里我們來(lái)看一下Python實(shí)現(xiàn)類(lèi)似jQuery使用中的鏈?zhǔn)秸{(diào)用的示例,首先說(shuō)明一下什么是鏈?zhǔn)秸{(diào)用:2016-06-06
Python PySpider爬蟲(chóng)框架安裝使用教程
PySpider是一個(gè)Python編寫(xiě)的分布式網(wǎng)絡(luò)爬蟲(chóng)框架,它可以幫助開(kāi)發(fā)者快速構(gòu)建和部署爬蟲(chóng),并支持爬蟲(chóng)任務(wù)的分布式運(yùn)行,PySpider基于Twisted網(wǎng)絡(luò)框架和MongoDB數(shù)據(jù)庫(kù),具有高效、穩(wěn)定、易用等特點(diǎn),同時(shí)還提供了一套Web界面,可以方便地查看爬蟲(chóng)任務(wù)的運(yùn)行狀態(tài)和結(jié)果2023-11-11
Python利用Matplotlib繪圖無(wú)法顯示中文字體的兩種解決方案
matplotlib 是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,這篇文章主要給大家介紹了關(guān)于Python利用Matplotlib繪圖無(wú)法顯示中文字體的兩種解決方案,需要的朋友可以參考下2024-03-03
Python中用Decorator來(lái)簡(jiǎn)化元編程的教程
這篇文章主要介紹了Python中用Decorator來(lái)簡(jiǎn)化元編程的教程,來(lái)自于IBM官方開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04

