网络驱动程序管理器

Webdriver Manager

public class MyDriverManager {
private WebDriver webdriver;
@BeforeClass
public static void beforeClass()
{
    WebDriverManager.chromedriver().setup();
    WebDriverManager.firefoxdriver().setup();
    WebDriverManager.edgedriver().setup();
}
@BeforeMethod
public void beforeMethod()
{
    webdriver=new ChromeDriver();
    webdriver.manage().window().maximize();
}
@AfterMethod
public  void AfterMethod()
{
    webdriver.close();
}
@Test
public  void test()
{
    webdriver.get("http://www.google.com/");
}

}

运行 @Test,我得到 java.lang.NullPointerException 作为一个错误,任何人,请让我知道我在哪里犯了错误。 另外,是否有任何可行的方法可以在框架中使用它以便我可以访问我的功能文件? 我尝试在 RunnerClass 中使用它,但似乎不是正确的方法。

当您直接 运行 您的 @Test 时,我假设您正在使用一些 IDE 并右键单击 @Test 注释并 运行 将其选中。 如果是这样的话,很可能你的 @BeforeMethod 没有被调用,因此 WebDriver 出现 null

要验证这一点,您可以调试或放置某种打印语句来检查。

如果您没有调试(只是修改了您的代码),请使用以下代码验证错误

public class MyDriverManager {
private WebDriver webdriver;
@BeforeClass
public static void beforeClass()
{
    WebDriverManager.chromedriver().setup();
    WebDriverManager.firefoxdriver().setup();
    WebDriverManager.edgedriver().setup();
}
@BeforeMethod
public void beforeMethod()
{
    System.out.println( " control is inside beforeMethod now");
    webdriver=new ChromeDriver();
    webdriver.manage().window().maximize();
}
@AfterMethod
public  void AfterMethod()
{
    webdriver.close();
}
@Test
public  void test()
{
    System.out.println( " control is inside test method now");
    webdriver.get("http://www.google.com/");
}

}