1

您有任何使用 ember.js 进行 Selenium 测试的经验/示例吗?

我无法“获取”视图(我使用路由器),因为它们具有不确定的 ID。

有任何想法吗?

4

2 回答 2

1

您可以为视图元素显式设置自己的 id。直接来自车把,例如:

{{#view Ember.TextField elementId="my_id"}}

或从您的视图对象:

MyApp.MyView = Ember.View.Extend({
  elemntId: "my_id"
});
于 2012-12-30T07:04:20.553 回答
0

EmberJS为属性生成/分配动态值id,例如 、、ember32等。在这些情况下,您将无法使用属性的完整值来定位/单击元素。例如,考虑以下元素:ember33ember34id

<input placeholder="" id="ember32" class="ssRegistrationField ssEmailTextboxField ember-text-field ember-view" type="email">

每次您访问AUT(Application Under Test)时,该属性的值id都会动态变化。因此,要交互/单击这些元素,解决方案是构造动态定位器策略,以诱导WebDriverWaitExpectedConditions结合,如下所示: 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();
    
于 2020-03-05T14:24:13.477 回答