您有任何使用 ember.js 进行 Selenium 测试的经验/示例吗?
我无法“获取”视图(我使用路由器),因为它们具有不确定的 ID。
有任何想法吗?
您可以为视图元素显式设置自己的 id。直接来自车把,例如:
{{#view Ember.TextField elementId="my_id"}}
或从您的视图对象:
MyApp.MyView = Ember.View.Extend({
elemntId: "my_id"
});
EmberJS为属性生成/分配动态值id
,例如 、、ember32
等。在这些情况下,您将无法使用属性的完整值来定位/单击元素。例如,考虑以下元素:ember33
ember34
id
<input placeholder="" id="ember32" class="ssRegistrationField ssEmailTextboxField ember-text-field ember-view" type="email">
每次您访问AUT(Application Under Test)时,该属性的值id
都会动态变化。因此,要交互/单击这些元素,解决方案是构造动态定位器策略,以诱导WebDriverWait与ExpectedConditions结合,如下所示: visibilityOfElementLocated()
cssSelector
:
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ssRegistrationField.ssEmailTextboxField.ember-text-field.ember-view[id^='ember']"))).click();
xpath
:
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[starts-with(@id, 'ember') and @class='ssRegistrationField ssEmailTextboxField ember-text-field ember-view']"))).click();