运行selenium IDE脚本时用户手动输入

时间:2012-01-19 06:29:58

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

用户能否在运行selenium IDE脚本时提供手动输入? 对于前者如果有name字段,那么我们可以在每次运行脚本时打开输入框,以便用户可以为name字段提供输入吗?

让我知道是否可能..

如果是,请建议我解决。

提前致谢

9 个答案:

答案 0 :(得分:16)

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

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

然后访问该值是使用${firstName}

的情况

答案 1 :(得分:3)

从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 :(得分:1)

由于您特别询问了Selenium IDE,答案是否定的。但是你可以暂停脚本并让用户输入他们的名字,然后让脚本继续。我听说有人使用这种技术来处理CAPTCHA,这当然不容易自动化。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

您可以使用建议使用Selenium WebDriver和Java BufferedReader的{​​{3}}技术。我不认为它可以适用于Selenium IDE,但该技术应该可以与Selenium RC一起使用。

基本理念是:

  • 发布Selenium命令,直至您想要捕获用户输入。
  • 调用以下代码以捕获BufferedReader的用户输入。

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

  • 继续您的Selenium命令

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

答案 5 :(得分:0)

只是斯蒂芬宾斯回应的一个小修改。我正在运行Selenium IDE 2.5.0,我的测试看起来像这样:

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

没有javascript {}就不会提示。

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

没有一个答案对我有用。这是我的解决方法:

创建新命令(在顶部存储要在30个地方使用的变量)。

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

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

  • 值:在Web输入框中输入一些文本,我的测试迭代号为$ {VarName}