客户端验证的焦点问题

时间:2014-11-11 11:12:14

标签: selenium selenium-webdriver selenium-ide

我正在尝试测试输入表单。我想检查一些客户端验证。我不了解内部情况,我也不想知道。所以对我来说这是一个黑盒子。

我想要实现的步骤:

  1. 单击/关注文本字段,但输入/不输入任何内容
  2. ckick /专注于另一个文本字段
  3. 现在应该向用户提示,步骤#1中的字段不能为空
  4. 这是我到目前为止的硒脚本:

    <tr><td>focus</td>         <td>id=name</td>                       <td></td> </tr>
    <tr><td>type</td>          <td>id=name</td>                       <td></td> </tr>
    <tr><td>focus</td>         <td>id=email</td>                      <td></td> </tr>
    <tr><td>verifyVisible</td> <td>css=div.field-error.errorname</td> <td></td> </tr>
    

    这可以使用Selenium IDE,但仅在浏览器窗口本身具有焦点时才有效。如果Selenium IDE窗口处于焦点,则测试失败。

    我还使用webdriver对其进行了建模。这总是失败。

    session.focus("id=name");
    session.type("id=name","");
    session.focus("id=email");
    verifyTrue(session.isVisible("css=div.field-error.errorname"));
    

    当测试失败时,总是因为css=div.field-error.errorname没有插入到DOM中。所以验证脚本没有以某种方式触发。

    如何设法测试?如何确保浏览器窗口具有焦点,以便脚本在现实世界中表现如何?

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

session.click("id=name");
session.sendKeys("id=name","");
session.click("id=email");
//wait for 3 seconds; if this works, you can use dynamic wait here
Thread.sleep(3000);
verifyTrue(session.isVisible("css=div.field-error.errorname"));

您使用的是Selenium RC API,而不是Webdriver API,最好使用Webdriver API。

相关问题