java - TestNG 数据提供程序中的 NumberFormatException

标签 java selenium selenium-webdriver testng testng-dataprovider

我使用以下方法在应用程序中输入凭据。

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;
    }

我收到以下错误:

FAILED: loginProxy("11", "Priya") java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source)

请帮忙解决同样的问题。据我所知,这个错误是由于整数到字符串的转换引起的。但我无法解决同样的问题。

最佳答案

数字格式异常Integer类的parseInt方法抛出。这明确表明,为键“Control_Wait”返回“String”值的方法 getProperties 返回 null,并且可能有“n”个原因。

属性文件中不存在 key 。

属性文件中不存在键值。

getProperties()获取键值的逻辑错误。

属性文件未初始化或正确加载

public class PropertyTest {

public static Properties properties = new Properties();

private static void loadProperties() {
    FileInputStream fis;
    try {
        fis = new FileInputStream("src/test/resources/property/android.properties");
        properties.load(fis);
        fis.close();
    } catch (FileNotFoundException e) {

    } catch (IOException e) {

    }
} 
public static String getProperty(String key) {
    String value = "";
    if (key != "") {
        loadProperties();
        try {
            if (!properties.getProperty(key).trim().isEmpty())
                value = properties.getProperty(key).trim();
        }

        catch (NullPointerException e) {

        }
    }

    return value;
}       

}

Usage

driverWait(Integer.parseInt(getProperty("Control_Wait")));

关于java - TestNG 数据提供程序中的 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51929996/

相关文章:

java - 可运行参数

selenium - 使用 Behat、Mink 和 PhantomJS 上传文件

selenium - 如何使用 Selenium 从任何网站获取页面内容?

python - 如何使用 Python Selenium Webdriver 通过默认 Chrome 配置文件打开 URL

c# - 使用 Selenium 2 查找嵌套 iFrame

java - R.id安卓工作室

java - 图像上的粗体文字

python - 遍历 Selenium 2 WebDriver 中的表(python)

selenium - 这是 WebDriver 服务器的初始启动页面

java - 使用动态类名以新 Intent 启动 Activity