System.ArgumentException:编码后的字符串只能用于密码

System.ArgumentException: The encoded string can only be used for a password

我尝试向 WPF 密码框输入密码并得到

System.ArgumentException: The encoded string can only be used for a password.

    /// <summary>
    /// Type '********' in text box
    /// </summary>
    public string UIItemEdit1SendKeys = "nAI/+1YbLXAzMC+MylAiumF+gga6bwns";

所以再试一次

Playback.EncryptText("admin")

这给出了同样的例外。 我正在使用 VS 2013。 看来我在做非常简单的事情,使用 Coded UI Test Builder - Recorder 输入用户名和密码。我可以记录但是当 运行 测试时我得到了上面的参数异常。

如果您尝试使用 sendkeys 方法设置密码,您可能会遇到此异常。

您的测试对象类型可能具有密码属性。当你用编码文本设置这个属性时,它会自动解密

// Refer to your Parameter 
uIPasswordEdit.Password = this.RecordedMethod1Params.UIPasswordEditPassword;

//Or Simply 
uIPasswordEdit.Password = "nAI/+1YbLXAzMC+MylAiumF+gga6bwns";

如果您没有看到 .Password 属性,您应该有一个 .text 属性。但是,请注意你不能在那里使用你的加密字符串,你必须自己提供密码(当心,你会在这里危及安全)。如下所示,

//Use the Text Attribute
uIPasswordEdit.Text= "myActualPasswordHere";

如果没有任何效果,使用 sendkeys 作为最后的手段

// Click the Password box to gain focus 
Mouse.Click(uIPasswordEdit);
Keyboard.SendKeys("myActualPasswordHere");