首页 > 解决方案 > 在实现 Selenium WebDriverEventListener 的类中声明静态字符串变量会导致 ChangeValueOf 和 ChangeValueOf 方法出错

问题描述

我正在实现 WebDriverEventListener 如下。setAlias 方法用于在日志中打印 WebElement 的用户友好名称,而不是包含元素定位器的长字符串。

虽然这在我有类似实现的另一个项目中运行良好,但在一个项目中我遇到了问题。当我声明“字符串名称”变量时,我看到beforeChangeValueOfafterChangeValueOf方法出现以下错误。如果我删除静态字符串变量,工作就好了。没有其他方法被标记为这样。

此行有多个标记 - EventHandler 类型必须实现继承的抽象方法 WebDriverEventListener.beforeChangeValueOf(WebElement, WebDriver, CharSequence[]) - EventHandler 类型必须实现继承的抽象方法 WebDriverEventListener.afterChangeValueOf(WebElement, WebDriver, CharSequence[])

public class EventHandler implements WebDriverEventListener {

private static Logger log = LogManager.getLogger(EventHandler.class);
private static String name;

public static void setAlias(final String alias) {
    name = alias;
}

@Override
public void beforeAlertAccept(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterAlertAccept(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterAlertDismiss(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeAlertDismiss(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeNavigateTo(String url, WebDriver driver) {
    // TODO Auto-generated method stub
    log.info("Navigating to {}", url);
    
}

@Override
public void afterNavigateTo(String url, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeNavigateBack(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterNavigateBack(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeNavigateForward(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterNavigateForward(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeNavigateRefresh(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterNavigateRefresh(WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeFindBy(By by, WebElement element, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterFindBy(By by, WebElement element, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeClickOn(WebElement element, WebDriver driver) {
    // TODO Auto-generated method stub
    
    
}

@Override
public void afterClickOn(WebElement element, WebDriver driver) {
    // TODO Auto-generated method stub
    log.info("Clicked on element {}", name);
}

@Override
public void beforeChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
    // TODO Auto-generated method stub

}

@Override
public void afterChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeScript(String script, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterScript(String script, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeSwitchToWindow(String windowName, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterSwitchToWindow(String windowName, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void onException(Throwable throwable, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public <X> void beforeGetScreenshotAs(OutputType<X> target) {
    // TODO Auto-generated method stub
    
}

@Override
public <X> void afterGetScreenshotAs(OutputType<X> target, X screenshot) {
    // TODO Auto-generated method stub
    
}

@Override
public void beforeGetText(WebElement element, WebDriver driver) {
    // TODO Auto-generated method stub
    
}

@Override
public void afterGetText(WebElement element, WebDriver driver, String text) {
    // TODO Auto-generated method stub
    
}

}

标签: javaseleniumwebdrivereventlistener

解决方案


推荐阅读