我在从XML文件访问属性时遇到问题。目标是显示searchkey" value" (在XML文件中)在搜索框中。但是当我将脚本作为Testng运行时,我得到了" Ram"(代码中的@可选值)作为搜索关键字。
运行XML时出错:org.xml.sax.SAXParseException; lineNumber:2;得到columnnumber:17;根元素类型的文档类型声明" suite"必须以'>'结尾。 at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:341)
XML代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" verbose="1">
<parameter name="author" value="Guru99"/>
<parameter name="searchkey" value="Testng"/>
<test name="testguru">
<parameter name="searchkey" value="U.K"/>
<classes>
<class name="Testngfiles.Parameters_xml"/>
</classes>
</test>
</suite>
Java代码:文件名是Parameters_xml.java
package Testngfiles;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import java.io.File;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.*;
import java.util.concurrent.TimeUnit;
public class Parameters_xml {
@Test
@Parameters({"author", "searchkey"})
public void testparameters(@Optional("ABC")String author,@Optional("Ram")String searchkey) throws Exception
{
WebDriver driver=new FirefoxDriver();
driver.navigate().to("http://guru99.com/selenium-tutorial.html");
driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
WebElement searchtext=driver.findElement(By.name("gsquery"));
searchtext.sendKeys(searchkey);
}
}
答案 0 :(得分:1)
看起来xml格式不正确。请试试这个 -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="BVC" verbose="1">
<parameter name="author" value="Guru99" />
<parameter name="searchkey" value="Testng" />
<test name="SmokeTestFF">
<parameter name="searchkey" value="U.K" />
<classes>
<class name="abc.aaa" />
</classes>
</test>
</suite>
套件,参数,类标签应该在xml中小写。以上xml适用于我和在结果中给出U.K值