Selenium webdriver 参数';名称';是@Test on method parameter Test所必需的,但未标记为@Optional

Selenium webdriver 参数';名称';是@Test on method parameter Test所必需的,但未标记为@Optional,selenium-webdriver,testng,parameterized,Selenium Webdriver,Testng,Parameterized,这是我的selenium testng脚本和XML文件。我收到了错误信息。请帮助我如何进行这项工作 Err MSG:method parametertest上的@Test需要参数“Name”,但未标记为@Optional import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class Sampleparameterized { @Test @Parameters("Name"

这是我的selenium testng脚本和XML文件。我收到了错误信息。请帮助我如何进行这项工作

Err MSG:method parametertest上的@Test需要参数“Name”,但未标记为@Optional

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class Sampleparameterized {

@Test
@Parameters("Name")
public void parametertest(String Name) {
System.out.println("Parameterized value is " +Name);
}
}
XML文件是

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<test name="Test">
<parameter name = "Name" value ="TOM"/>

<classes>
<class name="Testing.Sampleparameterized"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

当您从eclipse作为单个TestNG测试运行时,可能会发生这种情况。
您可能希望参考

上已经给出的答案,只需从*.xml文件运行testclass(右键单击*.xml->run)。无法直接运行参数化测试。

当您试图运行单个TestNg类而不是运行*.xml时,通常会出现此错误。您的参数是在*.xml文件中设置的,所以右键单击*.xml文件并作为TestNg运行。确保TestNg类在*.xml文件(class name=“com.test.WebServices”)中正确映射。这里WebServices.java是您的TestNg类。

我遇到了相同的问题,通过以下步骤得到了解决-
1.在项目->属性->测试->模板xml文件中设置xml文件

2.右键单击Java文件并选择RunAs…->TestNG Test(因此将使用模板)

您需要添加以下内容,以便能够直接从测试类运行测试:@Optional(“Name”)

例如:

public void parametertest(@Optional("Name"),String Name) {
System.out.println("Parameterized value is " +Name);
}

很适合我!让我知道你的情况。

但如果我这样做,任何之前或之后的注释都不会触发。那么,解决这个问题的最佳方法是什么?