selenium模擬滑鼠操作

2021-09-30 16:56:57 字數 2761 閱讀 2853

perform(self):        ---執行鏈中的所有動作

reset_actions(self): ---清除儲存在遠端的動作

click(self, on_element=none): ---滑鼠左鍵單擊

click_and_hold(self, on_element=none): --滑鼠左鍵單擊,不鬆開

context_click(self, on_element=none): ---滑鼠右鍵單擊

double_click(self, on_element=none): ---滑鼠左鍵雙擊

drag_and_drop(self, source, target): ---拖拽到某個元素後鬆開

drag_and_drop_by_offset(self, source, xoffset, yoffset): ---拖拽到某個座標後鬆開

key_down(self, value, element=none): ---某個鍵盤鍵被按下

key_up(self, value, element=none): ---鬆開某個鍵

move_by_offset(self, xoffset, yoffset): ---滑鼠移動到某個座標

move_to_element(self, to_element): ---滑鼠移動到某個元素

move_to_element_with_offset(self, to_element, xoffset, yoffset): ---移動到距某個元素(左上角)多少的位置

release(self, on_element=none): ---在某元素上鬆開滑鼠

send_keys(self, *keys_to_send): ---傳送某些值到當前焦點元素

send_keys_to_element(self, element, *keys_to_send): ---傳送某些值到指定元素

鏈式寫法

actionchains(driver).click(clk_btn).context_click(right_btn).perform()

分步寫法

# 補全化action

actions = actionchains(driver)

# 裝載單擊動作

actions.click()

# 裝載右擊動作

actions.context_click()

# 執行所有被裝載的動作

actions.perform()

#!/usr/bin/env python

# _*_ coding:utf-8 _*_

from selenium.webdriver.common.action_chains import actionchains

from selenium import webdriver

import time

driver = webdriver.chrome()

driver.get("")

driver.implicitly_wait(10)

# 右擊

right_click = driver.find_element_by_xpath('//a[@name="tj_trnews"]')

actionchains(driver).context_click(right_click).perform()

方法一:

使用js指令碼直接操作

js="var q=document.documentelement.scrolltop=10000"

driver.execute_script(js)

方法二:

將滾動條手動到指定的位置,這種方法更常用

target = driver.find_element_by_id("id_keypair")

driver.execute_script("arguments[0].scrollintoview();", target) #拖動到可見的元素去

方法三:

傳送tab鍵

from selenium.webdriver.common.keys import keys

driver.find_element_by_id("id_login_method_0").send_keys(keys.tab)

方法四:

前段時間使用robotframe work框架時,selenium2library裡面有乙個非常好用的功能focus,會自動定位到元素,研讀一下原始碼:

def focus(self, locator):

"""sets focus to element identified by `locator`."""

element = self._element_find(locator, true, true)

self._current_browser().execute_script("arguments[0].focus();", element)

從原始碼中我們可以看到,此方法與我們在python自己寫的方法二)一致,工具給我們做了封裝。

參考文件

selenium 模擬滑鼠拖拽

1 從乙個元素拖拽到另乙個元素 from selenium import webdriver from selenium.webdriver import actionchains import time browser webdriver.chrome try browser.get browse...

selenium模擬滑鼠滾動

target driver.find element by id id keypair driver.execute script arguments 0 scrollintoview target 拖動到可見的元素去 這個方法可以模擬滑鼠滾動到需要顯示的元素位置,使用場景 瀏覽器視窗小,頁面過大內...

selenium 滑鼠操作

與滑鼠操作相關的方法都封裝在actionchains類中。使用前,需呼叫actionchains。from selenium.webdriver import actionchains 1 perform 執行actiobchains類中儲存的所有行為 2 context click 右擊 3 do...