Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Selenium TestNG XML中运行多个测试用例_Java_Selenium_Selenium Webdriver_Testng - Fatal编程技术网

Java 在Selenium TestNG XML中运行多个测试用例

Java 在Selenium TestNG XML中运行多个测试用例,java,selenium,selenium-webdriver,testng,Java,Selenium,Selenium Webdriver,Testng,我正在尝试自动化一个场景,在这个场景中,我希望登录一次应用程序,然后进行操作,而无需再次登录 考虑到这一点,我创建了一个基类,其中包含@BeforeSuite,@BeforeTest,等等。。所有方法都包括驱动程序设置和特定类中的所有方法 然后我有3个Java文件,每个文件中包含多个测试用例 public class firstJavaClass extends TestBase { List<WebElement> elementList; WebElement e;

我正在尝试自动化一个场景,在这个场景中,我希望登录一次应用程序,然后进行操作,而无需再次登录

考虑到这一点,我创建了一个基类,其中包含
@BeforeSuite
@BeforeTest
,等等。。所有方法都包括驱动程序设置和特定类中的所有方法

然后我有3个Java文件,每个文件中包含多个测试用例

public class firstJavaClass extends TestBase {

  List<WebElement> elementList;
  WebElement e;

  @Test(priority = 0, enabled=true)
  public void firstTest() {
    new Login(driver, "user");

    driver.get(baseURL);
    implicitWait();
  }

  @Test(priority = 1, enabled=true)
  public void secondTest() {
    for(WebElement e : elementList)
      Helper.getValue(e);
    }
  }

为什么在testng.xml中有两次secondJavaClass?并共享secondJavaClass的代码,既然您提到了
,那么从secondJavaClass执行第一个测试,然后抛出NullPointerException失败了
secondJavaClass
,我在
secondJavaClass
中为
firstJavaClass
thirdJavaClass
公共类secondJavaClass扩展了TestBase提供了常见的测试用例{List elementList;WebElement e;@Test(priority=0,enabled=true)public void pageTitleMain(){Helper.getCss(Profiles.getPageTitle(driver));}@Test(priority=1,enabled=true)public void pageTitleSub(){Helper.getCss(Profiles.getPageNameTitle(driver));}@Test(priority=2,enabled=true)public void unselectedSubNavMenu(){elementList=Profiles.subNavUnSelected(驱动程序);}
为什么要调用
是否有任何After Test/class方法?我怀疑,在执行pageTitleMain方法后,驱动程序值会变为null。1)首先,这个问题与testng.xml无关。2)如果将一个类编写为两次,则只会执行一次(第二次类)3)请分享助手类的代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite">
    <test name="TEST">
        <classes>
            <class name="com.automation.firstJavaClass />
            <class name="com.automation.secondJavaClass />
            <class name="com.automation.thirdJavaClass />
            <class name="com.automation.secondJavaClass />
        </classes>
    </test>
</suite>
public class secondJavaClass extends TestBase {  

List<WebElement> elementList; WebElement e; 

@Test(priority = 0, enabled=true) 
public void pageTitleMain() { 
Helper.getCss(Profiles.getPageTitle(driver)); 
} 

@Test(priority = 1, enabled=true) 
public void pageTitleSub() {
 Helper.getCss(Profiles.getPageNameTitle(driver)); 
} 

@Test(priority = 2, enabled=true) public void unselectedSubNavMenu() 
{ 
elementList = Profiles.subNavUnSelected(driver); 
} 
}