有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在使用Netbeans中的Selenium Webdriver编写一些自动化测试。我有一个非常简单的测试,我正在实现页面对象。我的问题是:

  • 我以前的代码是:

    //Click the Timing Parts subcategory
    WebElement PartSubcategory = driver.findElement(By.xpath("//label[contains(.,'Timing Parts & Camshafts')]"));
    PartSubcategory.click();
    logger.info("Found subcategory: "+PartSubcategory.getText());
    
  • 在实现了页面对象模型之后,看起来是这样的

页面对象:

    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()中,“找不到符号方法getText()”。我猜这是因为我没有打印出一个正确声明的变量,而是一个页面对象类

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

谢谢


共 (1) 个答案

  1. # 1 楼答案

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

    改变

    findPartCategory.PartCategory(driver).click();
    

    findPartCategory.PartSubcategory(driver).click();
    

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

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

    这将实现与旧代码相同的功能