4

を使用してフォーム フィールドにユーザー名とパスワードを渡そうとすると、エラーが発生しますsendKeys。以下は私のユーザークラスで、その後にテストクラスが続きます。アプリケーションが文字列を渡さない理由を知っている人はいますか?

org.openqa.selenium.WebDriverException: 不明なエラー: キーは文字列でなければなりません

public class User {
    public static String username;
    public static String password;


    public User() {
        this.username = "username";
        this.password = "password";
    }

    public String getUsername(){
        return username;
    }

    public String getPassword(){
        return password;
    }

}

@Test
public void starWebDriver()  {
    driver.get(domainURL.getURL());
    WebElement userInputBox, passInputBox;
    userInputBox = driver.findElement(By.xpath("//input[@name='email']"));
    passInputBox = driver.findElement(By.xpath("//input[@name='password']"));
    System.out.println("before sending keys");
    userInputBox.sendKeys(User.username);
}
4

2 に答える 2

8

コンストラクターが呼び出されないため、初期化されない (null) 静的プロパティにアクセスしています。

静的プロパティを直接設定するか、静的コンテキストを取り出してテストでユーザーを初期化できます。

元。

public class User {
    public String username;
    public String password;


    public User() {
        this.username = "username";
        this.password = "password";
    }

    public String getUsername(){
        return username;
    }

    public String getPassword(){
        return password;
    }

}


@Test
public void starWebDriver()  {
    User user = new User();

    driver.get(domainURL.getURL());
    ...
    userInputBox.sendKeys(user.username);
}
于 2013-08-06T06:05:01.583 に答える
1

使用する

userInputBox.sendKeys(String.valueOf(User.username));
于 2013-08-06T06:57:34.277 に答える