0

下面给出的是我在 Eclipse 中使用 selenium 编写的代码。

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
class GoogleSearchTest {

    @Test
    public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.gecko.driver","C:\\Users\\acer\\Downloads\\selenium\\geckodriver.exe");
        WebDriver driver =new FirefoxDriver();
        driver.get("https://www.google.com/");
        WebElement we1 = driver.findElement(By.name("q"));
        we1.sendKeys("GMAIL");
        we1.sendKeys(Keys.ENTER); 
        WebDriverWait wait1 = new WebDriverWait(driver, 5);
        wait1.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h3[text()='E-mail - Sign in - Google Accounts']"))).click();
        Thread.sleep(10000); 
        driver.findElement(By.id("identifierId")).sendKeys("2017cs102@stu.ucsc.cmb.ac.lk");
        driver.findElement(By.xpath("//*[@id='identifierNext']/div/span/span")).click();
        Thread.sleep(10000);
        driver.findElement(By.name("password")).sendKeys("mmalsha425@gmail.com");
        driver.findElement(By.xpath("//*[@id='passwordNext']/div/span/span")).click();

    }

}

它给出了以下错误。

[TestNG] No tests found. Nothing was run
Usage: <main class> [options] The XML suite files to run

我已经安装了 TestNG 插件。我能做些什么来解决这个问题?

4

3 回答 3

0

此错误消息...

[TestNG] No tests found. Nothing was run
Usage: <main class> [options] The XML suite files to run

...意味着TestNG没有发现任何测试,因此没有执行任何操作。


测试NG

TestNG是一个基于注解的测试框架,它需要一个标记注解类型来表明一个方法是一个测试方法,并且应该由测试工具运行。因此,在使用注释时使用时,您不必显式调用该方法。main()


解决方案

简单的解决方案是将main()方法替换为测试方法名称,例如test()并保持@Test注释如下:

// your imports

class GoogleSearchTest {

    @Test
    public void test() throws InterruptedException {
        System.setProperty("webdriver.gecko.driver","C:\\Users\\acer\\Downloads\\selenium\\geckodriver.exe");
        // other lines of code
    }
}
于 2020-06-26T17:31:20.950 回答
0

更改主函数名称。使用 TestNG 时不应该使用它

@Test
public void test() throws InterruptedException {
    System.setProperty("webdriver.gecko.driver","C:\\Users\\acer\\Downloads\\selenium\\geckodriver.exe");
    WebDriver driver =new FirefoxDriver();
于 2020-06-26T14:19:21.990 回答
0

你不需要写main()方法,TestNg 自己做。

class GoogleSearchTest {
    @Test
    public void test() throws InterruptedException{
        //your code here
        .....
    }
}

如果您想从 调用main(),只需:

import org.testng.TestNG;

public class Master {
    public static void main(String[] args) {
        TestNG testng = new TestNG();
        testng.setTestClasses(new Class[] { GoogleSearchTest.class });
        testng.run();
    }
}

但请注意,在GoogleSearchTest课堂上不要public static void main@Test

于 2020-06-26T14:23:36.873 回答