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

Sco*_*ice 5 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>
Run Code Online (Sandbox Code Playgroud)

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

Kle*_*thu 5

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

sendKeys | xpath=(//input[@type='text'])[2] | TEXT To Enter
Run Code Online (Sandbox Code Playgroud)

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