Selenium-ActionChains类

一、介绍

  • move_to_element(element):将鼠标移动到指定的元素上。
  • move_to_element_with_offset(element, xoffset, yoffset):将鼠标移动到指定元素的偏移位置。
  • click(element=None):单击指定的元素。如果未指定元素,将在当前鼠标位置单击。
  • click_and_hold(element=None):按住指定元素。如果未指定元素,将在当前鼠标位置按住。
  • double_click(element=None):双击指定的元素。如果未指定元素,将在当前鼠标位置双击。
  • context_click(element=None):右击指定的元素。如果未指定元素,将在当前鼠标位置右击。
  • drag_and_drop(source, target):将源元素拖拽到目标元素上。
  • drag_and_drop_by_offset(source, xoffset, yoffset):将源元素拖拽到指定的偏移位置。
  • key_down(value, element=None):按住指定的键。如果提供了元素,将在元素上按住键。
  • key_up(value, element=None):释放指定的键。如果提供了元素,将在元素上释放键。
  • send_keys(*keys_to_send):在当前鼠标位置的元素上发送按键。
  • send_keys_to_element(element, *keys_to_send):在指定元素上发送按键。
  • pause(seconds):暂停指定的秒数。
  • perform():执行ActionChains中的所有操作。

 

二、引用

from selenium.webdriver import ActionChains

 

三、使用示例

1、访问高德地图:https://www.amap.com/

 

2、点击北京

 

3、示例代码

# -*- coding: utf-8 -*-
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver import ActionChains
from selenium import webdriver
import os

os.system("taskkill /f /im chromedriver.exe")  # 结束之前运行的chromedriver进程
option = webdriver.ChromeOptions()  # 创建Chrome选项对象
option.add_experimental_option('useAutomationExtension', False)  # 禁用扩展
option.add_argument('ignore-certificate-errors')  # 忽略证书错误
option.add_experimental_option("detach", True)  # 解决代码执行完成后,浏览器会自动关闭问题
option.add_argument('--disable-dev-shm-usage')  # 大量渲染时候写入/tmp而非/dev/shm
option.add_experimental_option("excludeSwitches", ['enable-automation'])  # 排除enable-automation开关
option.add_argument("disable-blink-features=AutomationControlled")  # 禁用Blink特性

driver = webdriver.Chrome(options=option)  # 创建Chrome浏览器实例
driver.maximize_window()  # 最大化窗口
driver.get("https://www.amap.com")  # 访问高德地图网站
sleep(5)  # 等待5秒,确保页面加载完成

class Ac():

    gaode_ly_loc = (By.ID, "renderArrowLayer")
    
    def gd(self, driver):
        sleep(1)
        ly = driver.find_element(*self.gaode_ly_loc)  # 查找元素

        x, y = 961, 480  # 定义偏移位置

        try:

            actions = ActionChains(driver)  # 创建ActionChains对象
            actions.move_to_element_with_offset(ly, x, y)  # 将鼠标移动到指定元素的偏移位置
            actions.pause(3)  # 暂停2秒
            actions.click()  # 单击
            actions.perform()  # 执行操作

            # ActionChains(driver).move_to_element_with_offset(ly, x, y).pause(2).click().perform()

            print("T")
        except:
            print("F")

# 创建Ac类实例并调用gd方法
Ac().gd(driver)

 

4、实现后效果

 

5、Page Ruler  点击进行下载

 

posted @ 2024-06-04 17:48  莲(LIT)  阅读(55)  评论(0编辑  收藏  举报