赞
踩
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) # 右键点击
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。