使用Python覆盖selenium中的webElement的.click()方法

Has*_*ood 2 python selenium python-2.7 selenium-webdriver

我想覆盖selenium.webdriver.remote.webelement.WebElement 的.click()方法.另外,每当我执行点击操作时,我都希望隐式调用click()方法,例如,

elem = driver.find_element_by_xpath('//some_xpath')
elem.click()
Run Code Online (Sandbox Code Playgroud)

反正有没有实现这个目标?

任何帮助将不胜感激,谢谢.

Flo*_* B. 5

要覆盖click方法:

from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.remote.command import Command


# monkey patch the click method :

def WebElement_click(self):
    """Clicks the element."""
    print("my click")
    self._execute(Command.CLICK_ELEMENT)

WebElement.click = WebElement_click


# usage example :

driver = webdriver.Chrome()
driver.get('https://stackoverflow.com')
driver.find_element_by_id("nav-questions").click()
Run Code Online (Sandbox Code Playgroud)