有没有一种方法可以用标准java对象注册用户定义的函数

有没有一种方法可以用标准java对象注册用户定义的函数,java,selenium,Java,Selenium,有没有一种方法可以用标准java对象注册用户定义的函数 为了更好地解释,我有一个简单的selenium代码 ObectRepository OR = PageFactory.initElements(objDriver, ObectRepository.class); OR.objLinkRegister.click(); OR.objInputFirstName.sendKeys(strTestmap.get("ABC")); //objInputFir

有没有一种方法可以用标准java对象注册用户定义的函数

为了更好地解释,我有一个简单的selenium代码

    ObectRepository OR = PageFactory.initElements(objDriver, ObectRepository.class);        
    OR.objLinkRegister.click();
    OR.objInputFirstName.sendKeys(strTestmap.get("ABC")); //objInputFirstName is an input box
现在,我不想在输入字段中使用sendkeys函数,我想使用一个函数,它可以实现sendkeys功能,也可以实现我自己的功能。代码可能如下所示

    ObectRepository OR = PageFactory.initElements(objDriver, ObectRepository.class);        
    OR.objLinkRegister.click();
    OR.objInputFirstName.sendKeysWithReports(strTestmap.get("ABC"));
    // normal flow below.

   private class myClass()
   {
    public void sendKeysWithReports(objInputFirstName)
    {
        objInputFirstName.SendKeys;
        //Do some stuff return to the notrmal flow
    }
   }

请忽略任何语法错误,因为我是Java新手:

通过尝试创建一个子类,它代理对内部元素的方法调用,您已经找到了正确的路径。在您的情况下,它将是:

public class ReportingObjectRepository {
    private ObjectRepository internal;

    public ReportingObjectRepository(ObjectRepository internal) {
        this.internal = internal;
    }

    public void sendKeys(Object o) {
        // Do your reporting stuff
        internal.sendKeys(o);
    }

    // You have to implement proxy methods for other methods you use
}
最后,你应该看看这个模式,它在将来可能会对你有很大帮助