gpt4 book ai didi

java - 在Java中包装Selenium wait.until函数,函数作为参数

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:28 33 4
gpt4 key购买 nike

我是 Java 新手,有一个问题:有没有一种干净的方法可以将下面的代码包装在一个函数中,该函数可以获取任何表达式(由箭头指向)作为参数?

Foo A, B;
...

try {
wait.until(new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
return A.equals(B); // <=================== some expression
}
}
catch (Exception ex) {
return false;
}
return true;

最佳答案

您需要一个接口(interface)或一个抽象类来执行此操作。在这种情况下,接口(interface)(两者中的一个)是更好的选择。

如果一个类实现了一个接口(interface),那么它必须具有接口(interface)中列出的函数。因此,当您在函数中接受接口(interface)时,您就知道该对象已列出该函数(并且您可以调用它)。

您将像这样定义一个接口(interface):

public interface Test {
public boolean passedTest();
}

然后您将定义实现测试的类:

public EqualsTest implements Test {
private Foo A, B;
public EqualsTest(Foo A, Foo B){
this.A = A;
this.B = B;
}
@Overrides
public boolean passedTest(){
return A.equals(B);
}
}

那么你的函数将如下所示:

public waitUntil(Test test){
try{
wait.until(new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
return test.passedTest()
}
}
} catch( Exception ex){
return false;
}
return true;
}

关于java - 在Java中包装Selenium wait.until函数,函数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25386295/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com