首页 > 解决方案 > Selenium webdriver Java:页面对象模型:在 chrome 浏览器中找不到 web 元素

问题描述

我正在尝试使用页面对象模型执行一个简单的 testng 程序。我能够启动 chrome 浏览器。但在页面上找不到任何网页元素。它正在打印,之后没有做任何事情。下面是输出。Chrome 版本是 79.0XX。请注意,简单的 java 文件(没有页面对象模型)在我的系统中运行良好。

在此处输入图像描述

主页类:

public class HomePage {
    WebDriver driver;
    By homePageUserName = By.xpath("/html/body/header/div[1]/span[2]/a[1]");

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

    public String getHomePageDashboardUserName(){
        System.out.println("foundd");
        return driver.findElement(homePageUserName).getText();
    }
}

测试页类:

import pages.HomePage;

public class TestPage {
    WebDriver driver;
    HomePage objHomePage;

    @Parameters("browser")
    @BeforeTest
    public void beforeTest(String browser){
        if(browser.equalsIgnoreCase("chrome"))
        {
            System.setProperty("webdriver.chrome.driver", "C:\\jars\\chromedriver.exe");
            WebDriver driver=new ChromeDriver();
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

            driver.get("MY URL here");

            driver.manage().window().maximize();
        }
    }

    @Test(priority=0)
    public void test_Home_Page_Appear_Correct(){
        objHomePage = new HomePage(driver);
        String PageTitle = objHomePage.getHomePageDashboardUserName();

        if(PageTitle!=null)
        {
            Assert.assertTrue(PageTitle.toLowerCase().contains("us"));
         }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
    <test name="ChromeTest" parallel="none">
        <parameter name="browser" value="chrome" />
        <classes>
            <class name="tests.TestPage">
            </class>
        </classes>
    </test>
</suite> 

标签: seleniumwebdriver

解决方案


推荐阅读