下面是我在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插件。我该怎么做才能解决这个问题?
更改主函数名称。使用TestNG时不应使用它
@Test
public void test() throws InterruptedException {
System.setProperty("webdriver.gecko.driver","C:\Users\acer\Downloads\selenium\geckodriver.exe");
WebDriver driver =new FirefoxDriver();
你不需要编写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
此错误消息...
[TestNG] No tests found. Nothing was run
Usage: <main class> [options] The XML suite files to run
。意味着TestNG没有发现任何测试,因此没有执行任何测试。
<小时 />测试NG
TestNG是一个基于注释的测试框架,它需要一个标记注释类型来指示方法是一种测试方法,并且应该由测试工具运行。因此,在使用 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
}
}
尝试重构方法
public static void main(String[] args) throws InterruptedException {
喜欢这个:
public void search()
{
// -----your code----
}