您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium模擬鼠標操作
作者:孔扎根 發(fā)布時間:[ 2017/4/11 11:36:27 ] 推薦標簽:功能測試工具 Selenium

Releasing a held mouse button on an element.
:Args:
- on_element: The element to mouse up.
If None, releases on current mouse position.
"""
if self._driver.w3c:
self.w3c_actions.pointer_action.release()
self.w3c_actions.key_action.pause()
else:
if on_element:
self.move_to_element(on_element)
self._actions.append(lambda: self._driver.execute(Command.MOUSE_UP, {}))
return self
def send_keys(self, *keys_to_send):
"""
Sends keys to current focused element.
:Args:
- keys_to_send: The keys to send.  Modifier keys constants can be found in the
'Keys' class.
"""
if self._driver.w3c:
self.w3c_actions.key_action.send_keys(keys_to_send)
else:
self._actions.append(lambda: self._driver.execute(
Command.SEND_KEYS_TO_ACTIVE_ELEMENT, {'value': keys_to_typing(keys_to_send)}))
return self
def send_keys_to_element(self, element, *keys_to_send):
"""
Sends keys to an element.
:Args:
- element: The element to send keys.
- keys_to_send: The keys to send.  Modifier keys constants can be found in the
'Keys' class.
"""
if self._driver.w3c:
self.w3c_actions.key_action.send_keys(keys_to_send, element=element)
else:
self._actions.append(lambda: element.send_keys(*keys_to_send))
return self
# Context manager so ActionChains can be used in a 'with .. as' statements.
def __enter__(self):
return self  # Return created instance of self.
def __exit__(self, _type, _value, _traceback):
pass  # Do nothing, does not require additional cleanup.
  方法列表
perform(self):        ---執(zhí)行鏈中的所有動作
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):     ---發(fā)送某些值到當前焦點元素
send_keys_to_element(self, element, *keys_to_send):     ---發(fā)送某些值到指定元素
  基本用法
  鏈式寫法
  ActionChains(driver).click(clk_btn).context_click(right_btn).perform()
  分步寫法
# 補全化action
actions = ActionChains(driver)
# 裝載單擊動作
actions.click()
# 裝載右擊動作
actions.context_click()
# 執(zhí)行所有被裝載的動作
actions.perform()
  應(yīng)用舉例
#!/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("https://www.baidu.com/")
driver.implicitly_wait(10)
# 右擊百度新聞
right_click = driver.find_element_by_xpath('//a[@name="tj_trnews"]')
ActionChains(driver).context_click(right_click).perform()


 

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd