Selenium 3.4 如何使用改变了 wait.until
Selenium 3.4 how to use changed wait.until
所以对于 Selenium 3.4,我之前工作的 wait.until
s 没有工作(被新方法取代)。不过,我似乎无法使用新方法。
我正在使用
import com.google.common.base.Function;
旧代码:
public boolean waitForURLToMatch(String expectedURL, int waitTime){
WebDriverWait wait = new WebDriverWait(driver, waitTime);
wait.until(EcpectedConditions.urlMatches(expectedURL));
}
新代码:
public boolean waitForURLToMatch(String expectedURL, int waitTime){
WebDriverWait wait = new WebDriverWait(driver, waitTime);
wait.until(new Function<WebDriver, boolean>){
@Override
public boolean apply(WebDriver driver) {
return driver.getCurrentUrl().equals(expectedURL);
}
}
}
新代码在eclipse中出现错误:
Syntax error on tokens, InterfaceHeader expected instead
关于我哪里出错的任何想法?
经过多次谷歌搜索,我最终发现问题只是语法问题。
这个有效:
public boolean waitForURLToMatch(String expectedURL, int waitTime){
Wait<WebDriver> wait = new WebDriverWait(driver, waitTime);
Function<WebDriver, Boolean> function = new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
String currentURL = driver.getCurrentUrl();
if(currentURL.equals(expectedURL))
{
truefalse = true;
return truefalse;
}
truefalse = false;
return truefalse;
}
};
try{
wait.until(function);
} catch (TimeoutException e){
}
return truefalse;
}
编辑:好的,看来这只是一个类路径冲突,现在一切正常,类路径冲突与 Selenium 一起删除不推荐使用的 until(predicate) 混淆了这个问题。
所以对于 Selenium 3.4,我之前工作的 wait.until
s 没有工作(被新方法取代)。不过,我似乎无法使用新方法。
我正在使用
import com.google.common.base.Function;
旧代码:
public boolean waitForURLToMatch(String expectedURL, int waitTime){
WebDriverWait wait = new WebDriverWait(driver, waitTime);
wait.until(EcpectedConditions.urlMatches(expectedURL));
}
新代码:
public boolean waitForURLToMatch(String expectedURL, int waitTime){
WebDriverWait wait = new WebDriverWait(driver, waitTime);
wait.until(new Function<WebDriver, boolean>){
@Override
public boolean apply(WebDriver driver) {
return driver.getCurrentUrl().equals(expectedURL);
}
}
}
新代码在eclipse中出现错误:
Syntax error on tokens, InterfaceHeader expected instead
关于我哪里出错的任何想法?
经过多次谷歌搜索,我最终发现问题只是语法问题。
这个有效:
public boolean waitForURLToMatch(String expectedURL, int waitTime){
Wait<WebDriver> wait = new WebDriverWait(driver, waitTime);
Function<WebDriver, Boolean> function = new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
String currentURL = driver.getCurrentUrl();
if(currentURL.equals(expectedURL))
{
truefalse = true;
return truefalse;
}
truefalse = false;
return truefalse;
}
};
try{
wait.until(function);
} catch (TimeoutException e){
}
return truefalse;
}
编辑:好的,看来这只是一个类路径冲突,现在一切正常,类路径冲突与 Selenium 一起删除不推荐使用的 until(predicate) 混淆了这个问题。