有没有一种方法可以用标准java对象注册用户定义的函数
有没有一种方法可以用标准java对象注册用户定义的函数 为了更好地解释,我有一个简单的selenium代码有没有一种方法可以用标准java对象注册用户定义的函数,java,selenium,Java,Selenium,有没有一种方法可以用标准java对象注册用户定义的函数 为了更好地解释,我有一个简单的selenium代码 ObectRepository OR = PageFactory.initElements(objDriver, ObectRepository.class); OR.objLinkRegister.click(); OR.objInputFirstName.sendKeys(strTestmap.get("ABC")); //objInputFir
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
}
最后,你应该看看这个模式,它在将来可能会对你有很大帮助