簡體   English   中英

如何在 selenium python 中右鍵單擊並按住它

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM