【问题标题】:How to suppress display of password in Selenium RC window如何禁止在 Selenium RC 窗口中显示密码
【发布时间】:2011-09-16 13:47:45
【问题描述】:

我正在使用 perl 库 WWW::Selenium 编写一些 Selenium RC 测试。在测试开始时,我需要使用我的用户名和密码登录 Web 表单。

我注意到我的密码在 Selenium 远程控制“命令历史记录”窗口中显示为type(password, secret)

有什么办法可以抑制密码的显示吗?或许除了type之外还有其他命令可以使用?

【问题讨论】:

    标签: perl selenium selenium-rc


    【解决方案1】:

    很遗憾,没有。您可以进入 Selenium 核心并将其更改为在找到名为密码的字段时显示 *******

    请注意,尽管这可能在调试时让生活变得困难

    【讨论】:

      【解决方案2】:

      我想我们可以使用本地方法支持来做到这一点。

      从逻辑上讲,selenium 中的每个本机方法都将发送到操作系统而不是浏览器。 所以如果你使用任何原生方法,流程是这样的:

      Client Program ----> Selenium RC server ----> to the operating system (in Java this is done using Robot Class)
      

      但所有其他非本地方法流程都是这样的:

      Client Program ----> Selenium RC server ----> to the Browser
      

      因此,命令历史记录窗口在浏览器级别运行,本地方法不会到达那里。

      代码如下:

      selenium.focus("locator");
      selenium.keyPressNative("key code"); // this will not be shown in command history
      

      这里的key code只有一个字符,如果你想要字符串(超过一个字符),我们应该依靠我们的客户端程序来实现逻辑。

      我在之前对其他帖子的回答中已经给出了该代码。如果您需要个性化发布我们的确切要求,以便我可以根据您的需要提供该代码。

      【讨论】:

      • 这几乎可以工作。我正在使用 perl 和 WWW::Selenium。我在命令行提示输入密码并将密码存储在变量中。然后我使用key_press_native 输入密码。但是,在脚本终止后,我的密码显示为在命令行中键入的内容,使我的密码可见。这只发生在我使用 key_press_native 时。
      • 我认为通过key_press_native 输入的键被放入预输入缓冲区。 (我正在运行 Windows,以防万一。)
      • 我认为“提前输入”问题实际上是 Firefox 未能获得焦点,所以当key_press_native 发生时,按键进入我的控制台窗口而不是 Firefox。跨度>
      • 如果您还有这个问题,请把代码放在这里。
      猜你喜欢
      • 2019-10-12
      • 2018-03-17
      • 1970-01-01
      • 2011-02-23
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多