> 技术文档 > Python爬虫基础——selenium模块进阶(模拟鼠标操作)_python selenium 模拟鼠标移动

Python爬虫基础——selenium模块进阶(模拟鼠标操作)_python selenium 模拟鼠标移动

        主要内容包括:模拟鼠标操作。常用的鼠标操作有单击、双击、右击、长按、拖动、移动等,模拟这些操作需要用到selenium模块中的ActionChains类。该类的基本使用方法是将实例化好的WebDriver对象作参数传到该类中,实例化成一个ActionChains对象,然后调用ActionChains对象的函数针对WebDriver对象中的网页元素模拟需要的鼠标操作。调用鼠标操作函数后,不会立即执行操作,而是将操作存储到一个队列中,当调用perform()函数时,再从队列中依次取出各个操作来执行。

1、模拟鼠标的单击、双击、右击

        ActionChains类中的click()函数用于模拟鼠标单击操作,此外,类中的double_click()函数用于模拟鼠标双击操作,context_click()函数则用于模拟鼠标右击操作, 这两个函数的使用方法和click()函数一致。

2、模拟鼠标的长按和松开长按

        click_and_hold()函数用于模拟鼠标的长按操作(按下鼠标且不松手),release()函数则用于模拟松开长按的鼠标操作。

3、模拟鼠标的拖动

drag_and_drop()函数用于模拟拖动鼠标的操作,drag_and_drop_by_offset()函数则用于模拟用鼠标将目标拖动一定距离的操作,(需要出水平方向和垂直方向上的位移值)。在登录界面模拟拖动滑块时常用到这个函数。

4、模拟鼠标移动

        move_by_offset()函数用于模拟将鼠标移动一定距离的操作(需要出水平方向和垂直方向上的位移值)。 move_to_element()函数用于模拟将鼠标移动到指定元素所在位置的操作。

################################作者:白雪公主的后妈##时间:2024年1月11日##主题:Python爬虫基础——selenium模块进阶##主要内容:使用selenium模块模拟鼠标操作、标签处理、显示等待和隐式等待。###############################1、模拟鼠标操作\'\'\'常用的鼠标操作有单击、双击、右击、长按、拖动、移动等,模拟这些操作需要用到selenium模块中的ActionChains类。该类的基本使用方法是将实例化好的WebDriver对象作参数传到该类中,实例化成一个ActionChains对象,然后调用ActionChains对象的函数针对WebDriver对象中的网页元素模拟需要的鼠标操作。调用鼠标操作函数后,不会立即执行操作,而是将操作存储到一个队列中,当调用perform()函数时,再从队列中依次取出各个操作来执行。\'\'\'#1.1模拟鼠标的单击、双击、右击# ActionChains类中的click()函数用于模拟鼠标单击操作from selenium import webdriverfrom selenium.webdriver import ActionChainsfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import Byimport timeservice = Service(\'E:\\\\python\\\\Scripts\\\\chromedriver.exe\') #实例化一个谷歌浏览器browser = webdriver.Chrome(service=service)browser.get(\'https://www.taobao.com\') #访问淘宝网页首页#通过XPATH表达式定位搜索框中的右侧‘搜索’按钮search_button = browser.find_element(By.XPATH,\'//*[@id=\"J_TSearchForm\"]/div[2]/button\')actions = ActionChains(browser) #利用WebDriver对象browser实例化一个ActionChains对象,命名为actions# actions.click(search_button).perform() #调用click()函数模拟针对“搜索”按钮的单击操作,在调用perform()函数执行该操作\'\'\' 此外,类中的double_click()函数用于模拟鼠标双击操作,context_click()函数则用于模拟鼠标右击操作,这两个函数的使用方法和click()函数一致。\'\'\'#1.2模拟鼠标的长按和松开长按\'\'\' click_and_hold()函数用于模拟鼠标的长按操作(按下鼠标且不松手),release()函数则用于模拟松开长按的鼠标操作。\'\'\'actions.click_and_hold(search_button).perform() #长按搜索按钮time.sleep(5)  #等待5秒actions.release(search_button).perform() #松开长按的鼠标,触发单击事件,页面跳转#1.3模拟鼠标的拖动\'\'\'drag_and_drop()函数用于模拟拖动鼠标的操作,drag_and_drop_by_offset()函数则用于模拟用鼠标将目标拖动一定距离的操作,(需要出水平方向和垂直方向上的位移值)。在登录界面模拟拖动滑块时常用到这个函数。\'\'\'#1.4模拟鼠标移动\'\'\'move_by_offset()函数用于模拟将鼠标移动一定距离的操作(需要出水平方向和垂直方向上的位移值)。move_to_element()函数用于模拟将鼠标移动到指定元素所在位置的操作。\'\'\'