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

时间:2015-03-13 15:59:10

标签: java selenium selenium-webdriver log4j webdriver

我正在使用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 ver。 1

谢谢!

1 个答案:

答案 0 :(得分:0)

您有编译错误。试图引用不存在的findPartCategory.PartCategory

更改

findPartCategory.PartCategory(driver).click();

findPartCategory.PartSubcategory(driver).click();

您还试图在getText()课程上调用findPartSubcategory,我认为您想在WebElement上调用它。

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

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