ホーム>source

以下の方法を使用して、アプリケーションに資格情報を入力しました。

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)

同じ解決に助けてください。私の知る限り、このエラーは整数から文字列への変換が原因で発生します。しかし、同じことを解決することはできません。

あなたの答え
  • 解決した方法 # 1

    数値形式の例外 によってスローされますparseInt の方法整数 クラス。これは、キー「Control_Wait」の「String」値を返すメソッドgetPropertiesがnullを返していることと、その理由が「n」個あることを明確に示しています。

    キーがプロパティファイルに存在しません。

    キーの値がプロパティファイルに存在しません。

    キーの値を取得する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 - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ dplyr - Rでバックスラッシュを含む列内の文字列の名前を変更する方法