如何使用带有 log4j 的页面对象模型中的 getText 进行打印?

How do I print using getText from a page object model with log4j?

我正在使用 Netbeans 中的 Selenium Webdriver 编写一些自动化测试代码。我有一个非常简单的测试,我正在实现页面对象。我的麻烦在这里:

页面对象:

    public class findPartSubcategory {
    private static WebElement element = null;

    //Click the Timing Parts subcategory
    public static WebElement PartSubcategory(WebDriver driver)
            {
        element = driver.findElement(By.xpath("//label[contains(.,'Timing Parts & Camshafts')]"));
        return element;
            }        
     }

测试代码:

    //Click the Timing Parts subcategory
    findPartSubcategory.PartSubcategory(driver).click();
    logger.info("Found subcategory: "+findPartCategory.getText());

所以,编译错误在getText(),"Cannot find symbol method getText()"。我猜这是因为我没有打印出一个正确声明的变量,而是一个页面对象 class.

那么如何才能打印它为该页面对象找到的内容呢?是的,我正在使用 log4j 版本。 1

谢谢!

你有一个编译错误。正在尝试引用不存在的 findPartCategory.PartCategory

改变

findPartCategory.PartCategory(driver).click();

findPartCategory.PartSubcategory(driver).click();

您还试图在 findPartSubcategory class 上调用 getText(),我假设您想在 WebElement 上调用它。

WebElement element = findPartSubcategory.PartSubcategory(driver);
element.click();
logger.info("Found subcategory: "+ element.getText());

这应该实现与旧代码相同的功能。