溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python+selenium如何實現(xiàn)點擊網(wǎng)頁上指定坐標(biāo)

發(fā)布時間:2021-07-23 14:25:42 來源:億速云 閱讀:511 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Python+selenium如何實現(xiàn)點擊網(wǎng)頁上指定坐標(biāo),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

例如有些頁面元素很難獲取,但是位置很固定,那么可以直接用坐標(biāo)來進行操作

例如要對頁面上的(x:200, y:100)進行操作,可以用如下代碼:

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)左鍵點擊, 200為x坐標(biāo), 100為y坐標(biāo)
ActionChains(dr).move_by_offset(200, 100).context_click().perform() # 鼠標(biāo)右鍵點擊

運行效果(右鍵):

Python+selenium如何實現(xiàn)點擊網(wǎng)頁上指定坐標(biāo)

需要注意的是,每次移動都是在上一次坐標(biāo)的基礎(chǔ)上(即坐標(biāo)值是累積的),如上的代碼實際運行時,點擊完左鍵再點擊右鍵,坐標(biāo)會變成(400, 200)。

可以用封裝來抵消這種累積(點擊完之后將鼠標(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:頁面x坐標(biāo)
  y:頁面y坐標(biāo)
  left_click:True為鼠標(biāo)左鍵點擊,否則為右鍵點擊
  '''
  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ù)到移動前

if __name__ == "__main__":
  dr = webdriver.Chrome()
  dr.get('http://www.baidu.com')
  click_locxy(dr, 100, 0) # 左鍵點擊
  click_locxy(dr, 100, 100, left_click=False) # 右鍵點擊

以上是“Python+selenium如何實現(xiàn)點擊網(wǎng)頁上指定坐標(biāo)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI