有哪些鼠標操作呢?
- 執行操作
- 左鍵、右鍵單擊、雙擊
- 鼠標懸停到元素、偏移處
- 長按
- 拖動
點擊右邊目錄即可跳轉哦! -------------->>>>>>>>>>
act.moveToElement(link).contextClick().sendKeys(Keys.ArrowsDown).build().perform();
執行操作
perform() 方法
主要是調用其他操作方法后,都要再次調用這個方法,表示執行某個鼠標操作,后面會有例子
左鍵、右鍵單擊、雙擊
from selenium.webdriver import ActionChains from selenium import webdriver driver = webdriver.Chrome("../resources/chromedriver.exe") # 創建實例 chains = ActionChains(driver) # 訪問網址 driver.get("file:///C:/test.html") # 登錄按鈕 username = driver.find_element_by_id("username") login_btn = driver.find_element_by_class_name("login") password = driver.find_element_by_id("password") # 左鍵點擊 chains.click(username).perform() # 右鍵點擊 chains.context_click(username).perform() # 雙擊 chains.double_click(password).perform()
鼠標懸停到元素、偏移處
# 懸停到設置按鈕 chains.move_to_element(login_btn).perform() # 懸停到指定偏移量 chains.move_to_element_with_offset(login_btn, 2, 2).perform()
知識點
move_to_element_with_offset() 是先找到元素,再根據元素位置偏移指定偏移量
長按
# 長按 chains.click_and_hold(login_btn).perform()
拖動
# 拖動1 chains.drag_and_drop(source=username, target=password) # 拖動2 chains.drag_and_drop_by_offset(source=username, xoffset=20, yoffset=20)
知識點
- drag_and_drop 將源元素拖動到目標元素處
- drag_and_drop_by_offset 將源元素拖動指定偏移量
有什么鍵盤操作?
- 刪除鍵
- 空格鍵
- 制表鍵
- 回退鍵
- 回車鍵
- 全選
- 復制
- 剪切
- 粘貼
- F1-F12
- ......其實就是所有鍵盤都能模擬,包括alt、shift、insert、delete、home等等等...這里就不舉例了,看源碼很容易懂
#!/usr/bin/env python # -*- coding: utf-8 -*- from time import sleep from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome("../resources/chromedriver.exe") driver.maximize_window() # 訪問網址 driver.get("http://www.baidu.com") # 找到搜索框 inputElement = driver.find_element_by_id("kw") # 輸入搜索內容 inputElement.send_keys("銳洋智能") # ctrl+a全選 inputElement.send_keys(Keys.CONTROL, "a") sleep(1) # ctrl+c 復制輸入框內容 inputElement.send_keys(Keys.CONTROL, 'c') sleep(1) # ctrl+x 剪切輸入框內容 inputElement.send_keys(Keys.CONTROL, 'x') sleep(1) # ctrl+v 粘貼輸入框內容 inputElement.send_keys(Keys.CONTROL, 'v') sleep(1) # 空格鍵 inputElement.send_keys(Keys.SPACE) sleep(1) # 后退鍵 inputElement.send_keys(Keys.BACKSPACE) sleep(1) # tab鍵 inputElement.send_keys(Keys.TAB) sleep(1) # 回車鍵 inputElement.send_keys(Keys.ENTER) # 刷新頁面 inputElement.send_keys(Keys.F5)