我一直在关注一些博客&要使这个工作的testng站点,使用参数背后的想法是从testng.xml文件传递浏览器值。但是当我在运行脚本之前将@Parameters annotaion错误出现在eclipse中时。当我尝试验证代码时出现错误 -
错误消息
此行有多个标记 - 注释类型的属性值未定义 参数 - 参数无法解析为类型 - 此位置不允许使用注释@Parameter
想想这里的事情可能是一个错误的导入或一些语法错误。我已经完成了导入
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
但是不起作用。试图将@Parameters注释放在@Test下面,但即便如此也不行。
这是我的代码 -
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.Test;
import org.testng.annotations.Parameters;
import org.testng.annotations.*;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class first_class {
private Selenium selenium;
public String url = "http://google.com/";
@Parameter ({ "browser" })
@Test
public void Test(String browser) throws MalformedURLException {
DesiredCapabilities capability = new DesiredCapabilities();
capability.setBrowserName(browser);
WebDriver driver = null;
try {
driver = new RemoteWebDriver(new URL("http://localhost:".concat(
"4444").concat("/wd/hub")), capability);
System.out.println();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
selenium = new WebDriverBackedSelenium(driver, "http://www.google.com/");
System.out.println("In Test Methos");
selenium.open("http://www.google.com/");
System.out.println(selenium.getTitle() + "in in Test Method");
selenium.close();
}
}
答案 0 :(得分:0)
您使用的是错误的注释,请阅读TestNG Javadoc:
http://testng.org/javadocs/org/testng/annotations/Parameters.html
答案 1 :(得分:0)
即使我在程序中遇到了一些错误 尝试在@parameter annotation
之前编写@ before,@ after或@test注释答案 2 :(得分:0)
使用@parameters代替@parameter