Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 如何在页面对象中使用数据块报告日志?_Selenium_Automation_Pageobjects_Extentreports_Selenium Extent Report - Fatal编程技术网

Selenium 如何在页面对象中使用数据块报告日志?

Selenium 如何在页面对象中使用数据块报告日志?,selenium,automation,pageobjects,extentreports,selenium-extent-report,Selenium,Automation,Pageobjects,Extentreports,Selenium Extent Report,在页面对象中使用test.log()方法时,我遇到空指针异常 我的数据块报告测试在TestBase类的“@BeforeMethod”中定义。因此,我需要访问test.log();进入页面对象,例如LoginPage.java。它在测试用例级别(即LoginPageTest.java)工作良好 @BeforeMethod public void beforeMethod(Method method) { String testMethodName = method.getN

在页面对象中使用test.log()方法时,我遇到空指针异常

我的数据块报告测试在TestBase类的“@BeforeMethod”中定义。因此,我需要访问test.log();进入页面对象,例如LoginPage.java。它在测试用例级别(即LoginPageTest.java)工作良好

    @BeforeMethod
    public void beforeMethod(Method method) {
    String testMethodName = method.getName();
    test = extent.createTest(testMethodName);
    String testReslt = method.getName();
    test.info(MarkupHelper.createLabel(testReslt, ExtentColor.BLUE));
    log.info("**************" + method.getName() + "Started***************");
}

public static void logExtentReport(String str) {
    test.log(Status.INFO, str);
}
下面是LoginPage.java(这是一个页面对象类)

}

只要改变就行了

private final Logger log = LoggerHelper.getLogger(LoginPage.class);


test=extent.createTest(testMethodName);是在BeforeMethod级别定义的,如果是在BeforeClass级别定义的,则它将起作用。但是我不想在类级别上使用它。您能详细说明这个问题并添加一些代码吗?@AmrutaPande添加了详细信息谢谢您的帮助,但是帮助器类仍然得到相同的NullPointerException。我在上面的描述中添加了一个helper类@让我问你以下两个问题:1。是否要将所有记录器输出到单个文件?2.您使用的是哪个构建系统Maven/Gradle?@hrismir dakov-我使用的是Maven pom.xml,我希望记录器在框架中的任何地方都能工作,不管它的测试用例文件如何,或者页面对象或帮助程序/实用程序类。将依赖项添加到“org.slf4j:slf4j api:1.7.30”和“org.slf4j:slf4j-log4j12:1.7.30”以及src/main/resources中的log4j.properties中的以下内容,然后使用来自同一pkg的org.slf4j.Logger和LoggerFactory.getLogger
import com.uiFramework.engie.prospector.helper.logger.LoggerHelper;
import com.uiFramework.engie.prospector.testbase.TestBase;

public class VerificationHelper {

private WebDriver driver;
private static Logger log = 
LoggerHelper.getLogger(VerificationHelper.class);

public VerificationHelper(WebDriver driver){
    this.driver = driver;
}

public boolean isDisplayed(WebElement element){
    try{
        element.isDisplayed();
        log.info("element is Displayed.."+element.getText());
        TestBase.logExtentReport("element is 
     Displayed.."+element.getText());
        return true;
    }
    catch(Exception e){
        log.error("element is not Displayed..", e.getCause());
        TestBase.logExtentReport("element is not 
    Displayed.."+e.getMessage());
        return false;
    }
}

public boolean isNotDisplayed(WebElement element){
    try{
        element.isDisplayed();
        log.info("element is present.."+element.getText());
        TestBase.logExtentReport("element is 
    present.."+element.getText());
        return false;
    }
    catch(Exception e){
        log.error("element is not present..");
        return true;
    }
}

public String readValueFromElement(WebElement element){
    if(null == element){
        log.info("WebElement is null..");
        return null;
    }
    boolean status = isDisplayed(element);
    if(status){
        log.info("element text is .."+element.getText());
        return element.getText();
    }
    else{
        return null;
    }
}
public String getText(WebElement element){
    if(null == element){
        log.info("WebElement is null..");
        return null;
    }
    boolean status = isDisplayed(element);
    if(status){
        log.info("element text is .."+element.getText());
        return element.getText();
    }
    else{
        return null;
    }
}
private final Logger log = LoggerHelper.getLogger(LoginPage.class);
private static final Logger log = LoggerHelper.getLogger(LoginPage.class);