我创建了一个基于JavaScript的应用程序,由Ember.js框架提供支持。现在,我想为应用程序创建Selenium 2测试。但是,我遇到了以下问题:
默认情况下,测试应该与页面上不存在的按钮或输入字段进行交互。换句话说,只有在某个动作之后才会显示Ember.js视图。无论如何,当我执行动作并进入所需的视图时。
然后,我想点击测试中的按钮,如下所示(Selenium 2测试在PHP中):
$button = $this->byId("myButton");
$button->click();
不幸的是,我收到以下错误:
PHPUnit_Extensions_Selenium2TestCase_WebDriverException:元素当前不可见,因此可能无法与
进行交互
这是因为Ember.js(或任何其他JavaScript工具)动态插入代码吗?在执行点击操作之前我试着睡了一两秒钟,但没有用。
如何使用Selenium 2解决此问题并测试JavaScript客户端应用程序(在我的案例中用Ember.js编写)?