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/0/drupal/3.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多次运行同一类_Java_Selenium_Automation_Testng_Pom.xml - Fatal编程技术网

Java 如何使用selenium多次运行同一类

Java 如何使用selenium多次运行同一类,java,selenium,automation,testng,pom.xml,Java,Selenium,Automation,Testng,Pom.xml,有什么方法可以让我在Selenium中运行一个类3次或更多次吗。因此,它按以下顺序运行: 方法1 方法2 方法3 方法1 方法2 方法3 方法1 方法2 方法3 据我所知,在TestNG中没有简单的方法可以做到这一点。注释参数invocationCount仅在方法级别有效,而不在类上有效,因此使用@Test(invocationCount=3)注释类不起作用 正如您提到的Selenium,我猜您正在尝试自动化网页上的一些重复操作。如果是这样的话,我认为从思想上讲,最好的办法是从这三个方法中提

有什么方法可以让我在Selenium中运行一个类3次或更多次吗。因此,它按以下顺序运行:

  • 方法1
  • 方法2
  • 方法3
  • 方法1
  • 方法2
  • 方法3
  • 方法1
  • 方法2
  • 方法3

据我所知,在TestNG中没有简单的方法可以做到这一点。注释参数
invocationCount
仅在方法级别有效,而不在类上有效,因此使用
@Test(invocationCount=3)
注释类不起作用

正如您提到的Selenium,我猜您正在尝试自动化网页上的一些重复操作。如果是这样的话,我认为从思想上讲,最好的办法是从这三个方法中提取代码,然后编写另一个调用这些内部的测试,如下所示:

@Test(priority = 1)
public void method1() {
    stuff1();
}

@Test(priority = 2)
public void method2() {
    stuff2();
}

@Test(priority = 3)
public void method3() {
    stuff3();
}

@Test
public void complexTest() {
    for (int i = 0; i < 3; i++) {
        stuff1();
        stuff2();
        stuff3();
    }
}
private void stuff1() {
    System.out.print("method1");
}

private void stuff2() {
    System.out.print("method2");
}

private void stuff3() {
    System.out.print("method3");
}
@测试(优先级=1)
公共无效方法1(){
填充1();
}
@测试(优先级=2)
公开作废方法2(){
第2条();
}
@测试(优先级=3)
公开作废方法3(){
第3条();
}
@试验
公共void complexTest(){
对于(int i=0;i<3;i++){
填充1();
第2条();
第3条();
}
}
私人文件1(){
系统输出打印(“方法1”);
}
私人文件2(){
系统输出打印(“方法2”);
}
私人文件3(){
系统输出打印(“方法3”);
}

将每个测试视为可能失败或通过的原子测试是一种很好的做法,如果您想测试执行特定操作集三次的某个场景,最好为此引入新的测试,并使其清晰明确地“讲述一个故事”测试。

我的场景类似于第一个:创建第二个:编辑第三个:批准这将给我一组数据,在另一个类中,我必须使用这些数据进行拖放,我需要至少2组数据。所有数据的状态都已批准,只有我需要拖动。因此,为此,我必须通过多次执行同一类来创建两组数据。我尝试了您的解决方案,但它不起作用,因为执行第一次后,浏览器未关闭,并且没有发现此类元素引发异常。
@Test(priority = 1)
public void method1() {
    stuff1();
}

@Test(priority = 2)
public void method2() {
    stuff2();
}

@Test(priority = 3)
public void method3() {
    stuff3();
}

@Test
public void complexTest() {
    for (int i = 0; i < 3; i++) {
        stuff1();
        stuff2();
        stuff3();
    }
}
private void stuff1() {
    System.out.print("method1");
}

private void stuff2() {
    System.out.print("method2");
}

private void stuff3() {
    System.out.print("method3");
}