【Python爬虫】selenium封装点击网页上指定坐标

本文详细介绍了使用Selenium进行鼠标操作的方法,包括如何通过move_by_offset进行精确的鼠标移动并执行左键或右键点击,同时提供了一种避免坐标累积的封装函数click_locxy,使操作更加灵活和准确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
 
browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
ActionChains(dr).move_by_offset(200, 100).click().perform() # 鼠标左键点击, 200为x坐标, 100为y坐标
ActionChains(dr).move_by_offset(200, 100).context_click().perform() # 鼠标右键点击

每次移动都是在上一次坐标的基础上(坐标值是累积的),如果直接运行上面的代码,实际上的操作是先左点击(200,100)的坐标,再右点击(400,200)的坐标。

如果不想坐标累计的话,可以用封装来抵消这种累积(点击完之后将鼠标坐标恢复)

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
 
def click_locxy(browser, x, y, left_click=True):
	''' 
	left_click == True 为左点击(默认为左点击)
    left_click == False 为右点击
	'''
    if left_click:
        ActionChains(browser).move_by_offset(x, y).click().perform()
    else:
        ActionChains(browser).move_by_offset(x, y).context_click().perform()
    ActionChains(browser).move_by_offset(-x, -y).perform()  # 将鼠标位置恢复到移动前
 
if __name__ == "__main__":
    browser = webdriver.Chrome()
    browser.get('http://www.baidu.com')
    click_locxy(browser, 100, 0) # 左键点击
    click_locxy(browser, 100, 100, left_click=False) # 右键点击
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值