【问题标题】:CodedUI test - can't send plain text password into input fieldCodedUI 测试 - 无法将纯文本密码发送到输入字段
【发布时间】:2015-01-27 05:12:30
【问题描述】:

在某些时候,当我将密码发送到表单上的输入字段时,看起来它被加密了。 密码长度为 8,但 CodedUI 正在输入更多字符,在测试执行期间可见。任何想法,如何只传递字符串而不进行任何编码?

附:

UIPassEdit.Text = password //Doesn't help as well.

代码示例:

public PasswordFormPage Login(string password)
    {
        Keyboard.SendKeys(UIPassEdit, password, false);
        Mouse.Click(UISignInHlnk);
        return PasswordFormPage.Instance();
    }

【问题讨论】:

  • 您是否尝试过使用 UI 自动化的ValuePattern?它可用于您的密码文本字段吗?
  • 不,它不适用于我的控件。
  • 好的,如果您可以更改应用程序的密码字段,那么您可以将 IValuePatternProvider 实现到此 UIComponent 以更新 UIComponents 行为。还有一个问题:如果您在自己的键盘上输入,该字段的行为是否相同?如果它的行为正确,我相信你可以使用 win32.dll 来发送实际的键盘命令。
  • 谢谢汉莎。我忘了提到编辑控件是嵌入到桌面应用程序中的简单 Web 表单。目前,问题已解决,即恢复对 SendKeys 的所有更改。我还发现 Windows 中存在一个可能是根本原因的错误。

标签: ui-automation coded-ui-tests microsoft-ui-automation


【解决方案1】:

尝试使用UIPassEdit.Password = password; .Password 字段混淆字符串,允许您正确地将未加密的字符串传递给字段。

【讨论】:

  • 谢谢。有趣,会尝试。
【解决方案2】:

对该密码类型使用 EncryptText 方法:

var pincode = editForm.SearchControl<HtmlEdit>(2, new { Name = "pinCode" });

    pincode.Password = Playback.EncryptText("1234");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2021-02-25
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    相关资源
    最近更新 更多