java - 使用 TestNG 进行跨浏览器测试

标签 java xml selenium cross-browser

我的代码是

@BeforeTest  
@Parameters("browser")
public void browserinitialization(String browser) throws Exception
{
    if(browser.equalsIgnoreCase("ie"))
    {
        System.setProperty("webdriver.ie.driver", "D:\\ESCLIPSE\\TestNG_project\\lib\\IEDriverServer.exe");
        DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
        caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
        driver = new InternetExplorerDriver(caps);
    }
    else if(browser.equalsIgnoreCase("chrome"))
    {
        System.setProperty("webdriver.ie.driver", "D:\\ESCLIPSE\\TestNG_project\\lib\\chromedriver.exe");
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        driver = new InternetExplorerDriver(caps);
    }
    else
    {
        throw new Exception("Browser is not correct");
    }
    driver.get(url);             
}

@Test
public void login() throws InterruptedException
{
    driver.findElement(By.id("txtUserName")).sendKeys("name");
    driver.findElement(By.id("txtPassword")).sendKeys("password");
    driver.findElement(By.id("btnOk")).click(); 
    Thread.sleep(5000);
}

@AfterTest
public void quit()
{
    driver.quit();
}

我的 XML 文件是

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="2"  parallel="tests" >
  <test name="ChromeTest">
  <parameter name="browser" value="Chrome" />
    <classes>
       <class name="firstreport.Firsttryfor">
     </class>
    </classes>
   </test>
  <test name="IETest">
  <parameter name="browser" value="IE" />
    <classes>
      <class name="firstreport.Firsttryfor">
      </class>
    </classes>
 </test>

我收到的错误为:

FAILED CONFIGURATION: @BeforeTest browserinitialization
org.testng.TestNGException: 
Parameter 'browser' is required by @Configuration on method browserinitialization but has not been marked @Optional or defined
in C:\Users\arunkumars\AppData\Local\Temp\testng-eclipse--441013644\testng-customsuite.xml
    at org.testng.internal.Parameters.createParameters(Parameters.java:155)
    at org.testng.internal.Parameters.createParameters(Parameters.java:358)
    at org.testng.internal.Parameters.createConfigurationParameters(Parameters.java:86)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:199)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
    at org.testng.TestRunner.beforeRun(TestRunner.java:641)
    at org.testng.TestRunner.run(TestRunner.java:609)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

SKIPPED CONFIGURATION: @AfterTest quit
SKIPPED: login

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 1
    Configuration Failures: 1, Skips: 1
===============================================

请帮我解决这个问题。我是 Java 编码新手。提前致谢

最佳答案

确保 XML 文件位于正确的路径中。如果您使用的是 eclipse,您应该会看到 xml 文件以及类文件。

您尚未关闭套件</suite>

而且,您是否尝试运行该类 firstreport.Firsttryfor而不是您的 XML 文件?如果是这样,您将收到该错误。

关于java - 使用 TestNG 进行跨浏览器测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25723459/

相关文章:

java - Logstash 缺少类名 (`org.apache.http.─▒mpl.client.StandardHttpRequestRetryHandler' )

Java - 捕获 System.load() 错误

android - 滚动文本滞后

xml - 在内部,Postgres 如何存储 XML 数据?

xpath - 我正在尝试在 selenium webDriver 中找到一个按钮。我在使用 xpath 查找包含空格的元素文本时遇到问题

javascript - 如何处理 Selenium Javascript Webdriver 中的警报?

java - 并行计算

c# - 如何在 C# 上停止 foreach 循环

linux - Jenkins - Selenium WebDriver Firefox 错误 - 无法连接

java - 为什么我在 Java 中得到 NoClassDefFoundError?