ember.js Ember:使用Selenium在浏览器中进行集成测试的最佳实践

xa9qqrwz  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(192)

你有任何经验/例子,使 selenium 测试与ember.js?
我不能“抓取”视图(我使用路由器),因为它们的id不确定。
有什么想法吗?

jm2pwxwz

jm2pwxwz1#

您可以显式地为视图元素设置自己的id。直接从手柄设置,如:

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

或从您的视图对象:

MyApp.MyView = Ember.View.Extend({
  elemntId: "my_id"
});
klh5stk1

klh5stk12#

EmberJS会产生/指派id属性的动态值,例如ember32ember33ember34等。在这些情况下,您将无法使用id属性的完整值来寻找/按一下元素。请以下列元素为例:

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

id属性的值将在每次访问 AUT(受测应用程序) 时动态地保持变化。因此,要交互/单击这些元素,解决方案是构建动态定位器策略,将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();

相关问题