本文共 1993 字,大约阅读时间需要 6 分钟。
以下是根据您的要求优化后的文章内容:
为了实现鼠标操作,需要导入相应的包:
from selenium.webdriver.common.action_chains import Action
以下是常用的鼠标操作语法:
click(on_element=None)
context_click(on_element=None)
click_and_hold(on_element=None)
double_click(on_element=None)
drag_and_drop(source, target)
drag_and_drop_by_offset(source, xoffset, yoffset)
move_by_offset(xoffset, yoffset)
move_to_element(to_element)
move_to_element_with_offset(to_element, xoffset, yoffset)
release(on_element=None)
perform()
定位元素或坐标
使用定位策略(如By.XPATH 或 By.CSS_SELECTOR)找到目标元素或使用绝对坐标。选择操作
根据需求选择合适的鼠标操作,可以组合多个操作。执行操作链
调用perform() 方法执行所有操作。示例1:鼠标移动到元素,左键点击,右键点击,双击
from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.action_chains import ActionChains# 打开浏览器driver = webdriver.Chrome()driver.get("http://westcomb.cn/demo/")# 找到目标元素ele = driver.find_element_by_link_text('Clicks Page')# 鼠标移动并点击ActionChains(driver).move_to_element(ele).click().perform()sleep(1)# 双击操作ele = driver.find_element_by_xpath('//div[@ondblclick="dcl(event)"]')ActionChains(driver).double_click(ele).perform()sleep(1)# 右键点击ele = driver.find_element_by_xpath('//input[@value="right click me"]')ActionChains(driver).context_click(ele).perform()sleep(10)# 关闭浏览器driver.quit() 示例2:鼠标移动到坐标,左键按住拖拽
from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.action_chains import ActionChains# 打开浏览器driver = webdriver.Chrome()driver.get("http://www.atool9.com/canvas.php")driver.maximize_window()# 移动到指定坐标ActionChains(driver).move_by_offset(300, 300).perform()sleep(2)# 左键按住并拖拽ActionChains(driver).click_and_hold().move_by_offset(500, 300).release().perform()sleep(5)# 关闭浏览器driver.quit()driver.close() 注意事项
move_by_offset 会累加坐标,可能导致超出边界,建议在中间使用 reset_actions() 清除累计坐标。这份文章为您提供了关于Selenium鼠标操作的实用指南,帮助您更高效地执行复杂操作。我们也分享了阿里、腾讯、字节等一线互联网大厂的面试资料,供求职者参考。
如果您觉得内容有用,请随时转发给有需要的朋友,共同进步!
转载地址:http://igofk.baihongyu.com/