尝试在eclipse中使用TESTNG框架自动化我的测试。 在Project I中,我使用一个数据包iEDGE,并将所有测试方法写入名为eLogin的单个类中。 但是当我尝试执行代码时,它会显示nullPointer异常。 以下是我用来运行测试用例的示例代码和xml设置。
任何人都可以帮我解决问题。
Package com.iEDGE;
public class eLogIn {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Parameters ( { "platform", "browser", "ver" } )
@BeforeMethod (alwaysRun=true )
public void setUp(@Optional String platform , @Optional String browser , @Optional String version ) throws Exception {
baseUrl = "Gmail URL";
DesiredCapabilities mCapability = new DesiredCapabilities();
if (platform.equalsIgnoreCase("WINDOWS")){
mCapability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
}
if (browser.equalsIgnoreCase("Firefox")) {
mCapability = DesiredCapabilities.firefox();
mCapability.setVersion("40");
}
driver = new RemoteWebDriver(new URL(baseUrl), mCapability);
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.MILLISECONDS);
driver.get(baseUrl);
driver.findElement(By.cssSelector("input[name=username]")).clear();
driver.findElement(By.cssSelector("input[name=username]")).sendKeys("username");
driver.findElement(By.cssSelector("input[name=password]")).clear();
driver.findElement(By.cssSelector("input[name=password]")).sendKeys("password");
driver.findElement(By.id("button-1015-btnInnerEl")).click();
}
//OTEHR TEST METHODS ....
}
TESTSuite.xml Settings
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite guice-stage="DEVELOPMENT" name="Default suite">
<test verbose="2" name="Default test">
<parameter name="platform" value="Windows"/>
<parameter name="browser" value="Firefox"/>
<parameter name="ver" value="40.0.3"/>
<classes>
<class name="com.iEDGE.eLogIn"/>
</classes>
</test> <!-- Default test -->
</suite> <!-- Default suite -->
答案 0 :(得分:0)
由于所有参数都使用@Optional注释,因此在调用其方法之前必须检查它们是否为null。所以,例如,你必须做这样的事情:
if(platform != null){
if (platform.equalsIgnoreCase("WINDOWS")){
mCapability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
}
}
对涉及这些可选参数的所有说明执行此操作。
答案 1 :(得分:0)
您将错误的网址传递给&#34; RemoteWebDriver(新URL(baseUrl),mCapability); &#34; 你应该像下面那样传递selenium服务器url:
new RemoteWebDriver( new URL("http://localhost:4444/wd/hub"),
mCapability);
有关详细信息,请访问: seleniumHq
如果您有任何疑虑,请告诉我
由于 萨迪克
答案 2 :(得分:0)
你正在初始化错误的基本网址。
应该是
baseUrl = "http://127.0.0.1:4888/wd/hub";
您必须提及本地主机中使用的传输协议。