【发布时间】:2018-08-20 11:40:23
【问题描述】:
我已使用以下方法在应用程序中输入凭据。
public LoginPage enterCredentials(String userName, String password){
actions.EnterText(userId, userName)
.EnterText(userPassword, password);
return this;
其中EnterText定义如下:
public Actions EnterText(ObjectLocator locator, String text){
driverWait(Integer.parseInt(getProperties("Control_Wait")));
FindElement(locator).clear();
FindElement(locator).sendKeys(text);
return this;
}
在测试类中我写了下面的代码
public class LoginTests extends TestSetup{
@Test(dataProvider="Credentials")
public void loginProxy(String usrName, String usrPassword){
LoginPage login = new LoginPage();
login.navigateUrl()
.enterCredentials(usrName, usrPassword)
.clickLogin();
}
@DataProvider(name ="Credentials")
public Object[][] getData(){
Object[][] data = new Object[3][2];
data[0][0] = "11";
data[0][1] = "Priya";
data[1][0] = "108";
data[1][1] = "Logan";
data[2][0] = "36";
data[2][1] = "Geller";
return data;
}
我收到以下错误:
失败:loginProxy("11", "Priya") java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(未知来源)
请帮助解决同样的问题。据我所知,此错误是由于将整数转换为字符串引起的。但我无法解决同样的问题。
【问题讨论】:
-
null无法解析为数字。添加完整的 stactrace 以获得更多帮助 -
但是我在数据提供者中传递了数字和字符串?它是如何变为空的?
-
我猜
getProperties("Control_Wait")返回null -
顺便说一句。注意 Java 命名约定。方法名称应以小写字符开头
Actions EnterText应为Actions enterText -
@jens 肯定会处理 Java 命名约定。 :)
标签: java selenium selenium-webdriver testng testng-dataprovider