文本字段上的Selenium触发事件,模仿人类交互的方式

时间:2012-07-23 21:32:11

标签: javascript selenium angularjs

我正在尝试使用angularjs在selenium中测试网页。在此页面上是用户将填写的文本字段。当用户在文本字段中键入时,angular将拾取每次击键并在运行中显示预览,确切地说填写stackoverflow问题会生成预览。 :)

我的问题是我无法弄清楚如何测试它。如果我单击文本字段并键入它工作。我尝试过selenium type命令,typeKeys命令,使用mousedown和mouseup命令然后键入Key来尝试模仿用户输入。但它们并没有像没有触发事件处理程序一样工作。我需要模仿人类的类型,以便事件触发。这就是我的想法,但它不起作用。

<tr>
  <td>mouseDown</td>
  <td>name=appName</td>
  <td></td>
</tr>
<tr>
  <td>mouseUp</td>
  <td>name=appName</td>
  <td></td>
</tr>
<tr>
  <td>typeKeys</td>
  <td>name=appName</td>
  <td>foobar</td>
</tr>

如果有一种使用javascript的方法也是可以接受的。谢谢。

2 个答案:

答案 0 :(得分:5)

我在使用Selenium IDE测试Angular JS表单字段时遇到了同样的问题。我尝试了几乎所有已知的焦点组合,点击,clickAt,按键等。最后发现有效的方法是使用sendKeys命令将文本放入字段中。所以在Selenium-IDE中,命令是

sendKeys | xpath=(//input[@type='text'])[2] | TEXT To Enter

请注意,我使用了xpath,但是我用来识别目标(css =,xpath,// div)并不重要,任何标识符都有效,它只是使用sendKeys来完成这个操作。

答案 1 :(得分:1)

尝试焦点或单击命令。