【问题标题】:Manual input from user while running selenium IDE script运行 selenium IDE 脚本时用户手动输入
【发布时间】:2012-02-13 20:50:46
【问题描述】:

用户可以在运行 selenium IDE 脚本时手动输入吗? 例如。如果有名称字段,那么我们可以在每次脚本运行时打开输入框,以便用户可以在名称字段中输入他的输入吗?

让我知道这是否可能..

如果是,请给我一个解决方案。

提前致谢

【问题讨论】:

    标签: testing selenium automation user-input selenium-ide


    【解决方案1】:

    截至 2020 年,使用 Selenium IDE 3.16.1,我发现以下配置适用于上述建议的答案。 (我重新回答了问题,因为上面的答案没有清楚地结合所有部分)

    Command : execute script
    
    Target : return prompt("Question Text","Default value");
    
    Value : yourVariableName
    

    并用存储的var填写输入框:

    Command : type
    
    Target : (your selector)
    
    Value : ${yourVariableName}
    

    【讨论】:

      【解决方案2】:

      没有一个被接受的答案对我有用。以下是我的解决方法:

      创建新命令(在顶部存储我想在 30 个位置使用的变量。)

      • 命令:执行脚本
      • 目标:返回“测试迭代 #13”
      • 值:变量名称

      然后在 30 个地方我想使用该变量。我把这个

      • 值:在 web 输入框中输入一些文本,我的测试迭代数是 ${VarName}

      【讨论】:

        【解决方案3】:

        您可以使用以下脚本调用 javascript 提示符以获取值

        <tr>
            <td>storeEval</td>
            <td>prompt(&quot;Please enter your FirstName&quot;)</td>
            <td>firstName</td>
        </tr>
        

        那么访问值就是使用${firstName}的情况。

        编辑:从 Selenium IDE 2.5.0 开始,脚本需要如下所示:

        <tr>
            <td>storeEval</td>
            <td>javascript{prompt(&quot;Please enter your FirstName&quot;)}</td>
            <td>firstName</td>
        </tr>
        

        【讨论】:

        • 我没有安装2.5.0版本,但是根据其他cmets,不应该是store而不是storeEval吗?那会更有意义。
        • 此外,在 3.1.0(参见 issue #162)中,您需要将 executeScript 与第二个参数一起使用,其中仅包含带有 return 语句的 JS(否则不会将任何内容存储在目标变量中) 反而。现在创建一个新答案,还是仅扩展这个答案仍然可以接受?
        【解决方案4】:

        使用 Thread.Sleep(20000); 这会将所有内容冻结 20 秒,您可以在该时间段内手动输入要输入的任何字段

        【讨论】:

          【解决方案5】:

          在 Selenium IDE 2.8.0 中: 捕获输入登录名和密码的测试会话。编辑每个命令,将“type”更改为“waitForText”,并删除先前为登录名和密码存储的 Value 字段中的值。从 IDE 重新运行保存的测试脚本。

          【讨论】:

          • 因为我喜欢接受的解决方案,所以这个解决方案最好获得完全混淆的密码。
          【解决方案6】:

          建议的解决方案适用于 selenium IDE(针对 2.5 测试)

          <tr>
              <td>store</td>
              <td>javascript{prompt(&quot;password&quot;)}</td>
              <td>password</td>
          </tr>
          

          【讨论】:

            【解决方案7】:

            只是对 Stephen Binns 的回应稍作修改。我正在运行 Selenium IDE 2.5.0,我的测试如下所示:

            <tr>
                <td>store</td>
                <td>javascript{prompt(&quot;password&quot;)}</td>
                <td>password</td>
            </tr>
            

            没有 javascript{} 它不会提示。

            【讨论】:

              【解决方案8】:

              既然您专门询问了 Selenium IDE,答案是否定的。但是您可以暂停脚本并让用户输入他们的姓名,然后让脚本继续运行。我听说有人使用这种技术来处理验证码,这当然不容易自动化。

              【讨论】:

                【解决方案9】:

                您可以使用建议的技术here,它使用 Selenium WebDriver 和 Java 的 BufferedReader。我认为它不能适用于 Selenium IDE,但该技术应该适用于 Selenium RC。

                基本思路是:

                • 发出 Selenium 命令直到您要捕获用户输入。
                • 调用以下代码将用户输入捕获到 BufferedReader。

                  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); reader.readLine();

                • 继续您的 Selenium 命令

                (注意,如果您使用的是 C#,有一个讨论 here 关于如何使用 Console.In.ReadLine(); 而不是 BufferedReader)。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2022-01-06
                  • 2011-05-21
                  • 2023-04-06
                  • 1970-01-01
                  • 2022-09-30
                  • 1970-01-01
                  • 2017-04-05
                  • 1970-01-01
                  相关资源
                  最近更新 更多