[英]How to right click and hold it in selenium python
我正在尋找自動化我的 web 瀏覽器來旋轉使用 mapbox 創建的 map,但是這只能通過按住鼠標右鍵並平移來完成。
我知道左鍵單擊有一個單擊並按住選項,但是右鍵單擊有什么類似的嗎? 目前我只能使用上下文單擊進行一次右鍵單擊
不幸的是,這不受支持,但是您可以在站點包目錄中修改 selenium 的源代碼,這非常簡單,因為您只需將 click_and_hold 方法中的指針事件參數更改為與指針相同的參數context_click 方法中的事件,然后為此創建自定義 function。
這是我設法做到的:
文件 1:在中找到並編輯此文件
lib/site-packages/selenium/webdriver/common/actions/pointer_actions.py
將此 function 添加到“PointerActions”class:
class PointerActions(Interaction):
def move_to_location(self, x, y):
...
def click(self, element=None):
...
def context_click(self, element=None):
...
# --- Add this function
def context_click_and_hold(self, element=None):
if element:
self.move_to(element)
self.pointer_down(MouseButton.RIGHT)
return self
# ---
def click_and_hold(self, element=None):
...
def release(self):
...
def double_click(self, element=None):
...
文件 2:在中找到並編輯此文件
庫/站點包/selenium/webdriver/common/action_chains.py
將此 function 添加到“ActionChains”class:
class ActionChains(object):
def __init__(self, driver, duration=250):
...
def click(self, on_element=None):
...
# --- Add this function
def context_click_and_hold(self, on_element=None):
"""
Holds down the right mouse button on an element.
:Args:
- on_element: The element to mouse down.
If None, clicks on current mouse position.
"""
if on_element:
self.move_to_element(on_element)
self.w3c_actions.pointer_action.context_click_and_hold()
self.w3c_actions.key_action.pause()
return self
# ---
def click_and_hold(self, on_element=None):
...
def context_click(self, on_element=None):
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.