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