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 点击进行下载